diff --git a/packages/cli/src/cli.ts b/packages/cli/src/cli.ts index 1e612b3de4..f36c1b071c 100644 --- a/packages/cli/src/cli.ts +++ b/packages/cli/src/cli.ts @@ -93,6 +93,7 @@ export function main(originalArgs: readonly string[]): void { "IndexedTx", "Coin", "Msg", + "MsgDelegate", "MsgSend", "Pen", "PubKey", diff --git a/packages/sdk38/src/index.ts b/packages/sdk38/src/index.ts index c8fafcad6d..30e02d4b7d 100644 --- a/packages/sdk38/src/index.ts +++ b/packages/sdk38/src/index.ts @@ -30,7 +30,7 @@ export { SearchTxsResponse, TxsResponse, } from "./restclient"; -export { isMsgSend, Msg, MsgSend } from "./msgs"; +export { isMsgDelegate, isMsgSend, Msg, MsgDelegate, MsgSend } from "./msgs"; export { Pen, Secp256k1Pen, makeCosmoshubPath } from "./pen"; export { decodeBech32Pubkey, encodeBech32Pubkey, encodeSecp256k1Pubkey } from "./pubkey"; export { findSequenceForSignedTx } from "./sequence"; diff --git a/packages/sdk38/src/msgs.ts b/packages/sdk38/src/msgs.ts index f503515d78..8393789307 100644 --- a/packages/sdk38/src/msgs.ts +++ b/packages/sdk38/src/msgs.ts @@ -20,3 +20,23 @@ export interface MsgSend extends Msg { export function isMsgSend(msg: Msg): msg is MsgSend { return (msg as MsgSend).type === "cosmos-sdk/MsgSend"; } + +/** + * A Cosmos SDK MsgDelegate + * + * @see https://docs.cosmos.network/master/modules/staking/03_messages.html#msgdelegate + */ +export interface MsgDelegate extends Msg { + readonly type: "cosmos-sdk/MsgDelegate"; + readonly value: { + /** Bech32 encoded delegator address */ + readonly delegator_address: string; + /** Bech32 encoded validator address */ + readonly validator_address: string; + readonly amount: Coin; + }; +} + +export function isMsgDelegate(msg: Msg): msg is MsgDelegate { + return (msg as MsgDelegate).type === "cosmos-sdk/MsgDelegate"; +} diff --git a/packages/sdk38/types/index.d.ts b/packages/sdk38/types/index.d.ts index 9b84fb423a..a6b777b9ca 100644 --- a/packages/sdk38/types/index.d.ts +++ b/packages/sdk38/types/index.d.ts @@ -28,7 +28,7 @@ export { SearchTxsResponse, TxsResponse, } from "./restclient"; -export { isMsgSend, Msg, MsgSend } from "./msgs"; +export { isMsgDelegate, isMsgSend, Msg, MsgDelegate, MsgSend } from "./msgs"; export { Pen, Secp256k1Pen, makeCosmoshubPath } from "./pen"; export { decodeBech32Pubkey, encodeBech32Pubkey, encodeSecp256k1Pubkey } from "./pubkey"; export { findSequenceForSignedTx } from "./sequence"; diff --git a/packages/sdk38/types/msgs.d.ts b/packages/sdk38/types/msgs.d.ts index a0ed12803e..eabba3752b 100644 --- a/packages/sdk38/types/msgs.d.ts +++ b/packages/sdk38/types/msgs.d.ts @@ -15,3 +15,19 @@ export interface MsgSend extends Msg { }; } export declare function isMsgSend(msg: Msg): msg is MsgSend; +/** + * A Cosmos SDK MsgDelegate + * + * @see https://docs.cosmos.network/master/modules/staking/03_messages.html#msgdelegate + */ +export interface MsgDelegate extends Msg { + readonly type: "cosmos-sdk/MsgDelegate"; + readonly value: { + /** Bech32 encoded delegator address */ + readonly delegator_address: string; + /** Bech32 encoded validator address */ + readonly validator_address: string; + readonly amount: Coin; + }; +} +export declare function isMsgDelegate(msg: Msg): msg is MsgDelegate;