soft3.js/src/encodeobjects.ts

import { EncodeObject } from "@cosmjs/proto-signing";
import { MsgExec, MsgGrant, MsgRevoke } from "cosmjs-types/cosmos/authz/v1beta1/tx";
import { MsgDeposit, MsgSubmitProposal, MsgVote } from "cosmjs-types/cosmos/gov/v1beta1/tx";
import { MsgBeginRedelegate } from "cosmjs-types/cosmos/staking/v1beta1/tx";

import { MsgCyberlink } from "./codec/cyber/graph/v1beta1/tx";
import {
  MsgCreateRoute,
  MsgDeleteRoute,
  MsgEditRoute,
  MsgEditRouteName,
} from "./codec/cyber/grid/v1beta1/tx";
import { MsgInvestmint } from "./codec/cyber/resources/v1beta1/tx";
import {
  MsgCreatePool,
  MsgDepositWithinBatch,
  MsgSwapWithinBatch,
  MsgWithdrawWithinBatch,
} from "./codec/tendermint/liquidity/v1beta1/tx";

// Staking module

export interface MsgBeginRedelegateEncodeObject extends EncodeObject {
  readonly typeUrl: "/cosmos.staking.v1beta1.MsgBeginRedelegate";
  readonly value: Partial<MsgBeginRedelegate>;
}

export function isMsgBeginRedelegateEncodeObject(
  encodeObject: EncodeObject,
): encodeObject is MsgBeginRedelegateEncodeObject {
  return (
    (encodeObject as MsgBeginRedelegateEncodeObject).typeUrl === "/cosmos.staking.v1beta1.MsgBeginRedelegate"
  );
}

// Energy module

export interface MsgCreateRouteEncodeObject extends EncodeObject {
  readonly typeUrl: "/cyber.grid.v1beta1.MsgCreateRoute";
  readonly value: Partial<MsgCreateRoute>;
}

export function isMsgCreateRouteEncodeObject(
  encodeObject: EncodeObject,
): encodeObject is MsgCreateRouteEncodeObject {
  return (encodeObject as MsgCreateRouteEncodeObject).typeUrl === "/cyber.grid.v1beta1.MsgCreateRoute";
}

export interface MsgDeleteRouteEncodeObject extends EncodeObject {
  readonly typeUrl: "/cyber.grid.v1beta1.MsgDeleteRoute";
  readonly value: Partial<MsgDeleteRoute>;
}

export function isMsgDeleteRouteEncodeObject(
  encodeObject: EncodeObject,
): encodeObject is MsgDeleteRouteEncodeObject {
  return (encodeObject as MsgDeleteRouteEncodeObject).typeUrl === "/cyber.grid.v1beta1.MsgDeleteRoute";
}

export interface MsgEditRouteEncodeObject extends EncodeObject {
  readonly typeUrl: "/cyber.grid.v1beta1.MsgEditRoute";
  readonly value: Partial<MsgEditRoute>;
}

export function isMsgEditRouteEncodeObject(
  encodeObject: EncodeObject,
): encodeObject is MsgEditRouteEncodeObject {
  return (encodeObject as MsgEditRouteEncodeObject).typeUrl === "/cyber.grid.v1beta1.MsgEditRoute";
}

export interface MsgEditRouteNameEncodeObject extends EncodeObject {
  readonly typeUrl: "/cyber.grid.v1beta1.MsgEditRouteName";
  readonly value: Partial<MsgEditRouteName>;
}

export function isMsgEditRouteNameEncodeObject(
  encodeObject: EncodeObject,
): encodeObject is MsgEditRouteNameEncodeObject {
  return (encodeObject as MsgEditRouteNameEncodeObject).typeUrl === "/cyber.grid.v1beta1.MsgEditRouteName";
}

// Graph module

export interface MsgCyberlinkEncodeObject extends EncodeObject {
  readonly typeUrl: "/cyber.graph.v1beta1.MsgCyberlink";
  readonly value: Partial<MsgCyberlink>;
}

export function isMsgCyberlinkEncodeObject(
  encodeObject: EncodeObject,
): encodeObject is MsgCyberlinkEncodeObject {
  return (encodeObject as MsgCyberlinkEncodeObject).typeUrl === "/cyber.graph.v1beta1.MsgCyberlink";
}

// Resources module

export interface MsgInvestmintEncodeObject extends EncodeObject {
  readonly typeUrl: "/cyber.resources.v1beta1.MsgInvestmint";
  readonly value: Partial<MsgInvestmint>;
}

export function isMsgInvestmintEncodeObject(
  encodeObject: EncodeObject,
): encodeObject is MsgInvestmintEncodeObject {
  return (encodeObject as MsgInvestmintEncodeObject).typeUrl === "/cyber.resources.v1beta1.MsgInvestmint";
}

// Liquidity module

export interface MsgSwapWithinBatchEncodeObject extends EncodeObject {
  readonly typeUrl: "/tendermint.liquidity.v1beta1.MsgSwapWithinBatch";
  readonly value: Partial<MsgSwapWithinBatch>;
}

export function isMsgSwapWithinBatchEncodeObject(
  encodeObject: EncodeObject,
): encodeObject is MsgSwapWithinBatchEncodeObject {
  return (
    (encodeObject as MsgSwapWithinBatchEncodeObject).typeUrl ===
    "/tendermint.liquidity.v1beta1.MsgSwapWithinBatch"
  );
}

export interface MsgDepositWithinBatchEncodeObject extends EncodeObject {
  readonly typeUrl: "/tendermint.liquidity.v1beta1.MsgDepositWithinBatch";
  readonly value: Partial<MsgDepositWithinBatch>;
}

export function isMsgDepositWithinBatchEncodeObject(
  encodeObject: EncodeObject,
): encodeObject is MsgDepositWithinBatchEncodeObject {
  return (
    (encodeObject as MsgDepositWithinBatchEncodeObject).typeUrl ===
    "/tendermint.liquidity.v1beta1.MsgDepositWithinBatch"
  );
}

export interface MsgWithdrawWithinBatchEncodeObject extends EncodeObject {
  readonly typeUrl: "/tendermint.liquidity.v1beta1.MsgWithdrawWithinBatch";
  readonly value: Partial<MsgWithdrawWithinBatch>;
}

export function isMsgWithdrawWithinBatchEncodeObject(
  encodeObject: EncodeObject,
): encodeObject is MsgWithdrawWithinBatchEncodeObject {
  return (
    (encodeObject as MsgWithdrawWithinBatchEncodeObject).typeUrl ===
    "/tendermint.liquidity.v1beta1.MsgWithdrawWithinBatch"
  );
}

export interface MsgCreatePoolEncodeObject extends EncodeObject {
  readonly typeUrl: "/tendermint.liquidity.v1beta1.MsgCreatePool";
  readonly value: Partial<MsgCreatePool>;
}

export function isMsgCreatePoolEncodeObject(
  encodeObject: EncodeObject,
): encodeObject is MsgCreatePoolEncodeObject {
  return (
    (encodeObject as MsgCreatePoolEncodeObject).typeUrl === "/tendermint.liquidity.v1beta1.MsgCreatePool"
  );
}

// Gov module

export interface MsgSubmitProposalEncodeObject extends EncodeObject {
  readonly typeUrl: "/cosmos.gov.v1beta1.MsgSubmitProposal";
  readonly value: Partial<MsgSubmitProposal>;
}

export function isMsgSubmitProposalEncodeObject(
  encodeObject: EncodeObject,
): encodeObject is MsgSubmitProposalEncodeObject {
  return (encodeObject as MsgSubmitProposalEncodeObject).typeUrl === "/cosmos.gov.v1beta1.MsgSubmitProposal";
}

export interface MsgVoteEncodeObject extends EncodeObject {
  readonly typeUrl: "/cosmos.gov.v1beta1.MsgVote";
  readonly value: Partial<MsgVote>;
}

export function isMsgVoteEncodeObject(encodeObject: EncodeObject): encodeObject is MsgVoteEncodeObject {
  return (encodeObject as MsgVoteEncodeObject).typeUrl === "/cosmos.gov.v1beta1.MsgVote";
}

export interface MsgDepositEncodeObject extends EncodeObject {
  readonly typeUrl: "/cosmos.gov.v1beta1.MsgDeposit";
  readonly value: Partial<MsgDeposit>;
}

export function isMsgDepositEncodeObject(encodeObject: EncodeObject): encodeObject is MsgDepositEncodeObject {
  return (encodeObject as MsgDepositEncodeObject).typeUrl === "/cosmos.gov.v1beta1.MsgDeposit";
}

export interface MsgGrantEncodeObject extends EncodeObject {
  readonly typeUrl: "/cosmos.authz.v1beta1.MsgGrant";
  readonly value: Partial<MsgGrant>;
}

export function isMsgGrantEncodeObject(encodeObject: EncodeObject): encodeObject is MsgGrantEncodeObject {
  return (encodeObject as MsgGrantEncodeObject).typeUrl === "/cosmos.authz.v1beta1.MsgGrant";
}

export interface MsgExecEncodeObject extends EncodeObject {
  readonly typeUrl: "/cosmos.authz.v1beta1.MsgExec";
  readonly value: Partial<MsgExec>;
}

export function isMsgExecEncodeObject(encodeObject: EncodeObject): encodeObject is MsgExecEncodeObject {
  return (encodeObject as MsgExecEncodeObject).typeUrl === "/cosmos.authz.v1beta1.MsgExec";
}
export interface MsgRevokeEncodeObject extends EncodeObject {
  readonly typeUrl: "/cosmos.authz.v1beta1.MsgRevoke";
  readonly value: Partial<MsgRevoke>;
}

export function isMsgRevokeEncodeObject(encodeObject: EncodeObject): encodeObject is MsgRevokeEncodeObject {
  return (encodeObject as MsgRevokeEncodeObject).typeUrl === "/cosmos.authz.v1beta1.MsgRevoke";
}

Neighbours