feat: add msg cancel unbond to amino and messages staking module

This commit is contained in:
fibonacci998 2023-12-22 17:14:44 +07:00
parent 287278004b
commit 9712967d50
2 changed files with 59 additions and 0 deletions

View File

@ -5,6 +5,7 @@ import { decodePubkey, encodePubkey } from "@cosmjs/proto-signing";
import { assertDefinedAndNotNull } from "@cosmjs/utils";
import {
MsgBeginRedelegate,
MsgCancelUnbondingDelegation,
MsgCreateValidator,
MsgDelegate,
MsgEditValidator,
@ -143,6 +144,20 @@ export function isAminoMsgUndelegate(msg: AminoMsg): msg is AminoMsgUndelegate {
return msg.type === "cosmos-sdk/MsgUndelegate";
}
export interface AminoMsgCancelUnbondingDelegation extends AminoMsg {
readonly type: "cosmos-sdk/MsgCancelUnbondingDelegation";
readonly value: {
readonly delegator_address: string;
readonly validator_address: string;
readonly amount: Coin;
readonly creation_height: string;
};
}
export function isAminoMsgCancelUnbondingDelegation(msg: AminoMsg): msg is AminoMsgCancelUnbondingDelegation {
return msg.type === "cosmos-sdk/MsgCancelUnbondingDelegation";
}
export function createStakingAminoConverters(): Record<string, AminoConverter> {
return {
"/cosmos.staking.v1beta1.MsgBeginRedelegate": {
@ -326,5 +341,33 @@ export function createStakingAminoConverters(): Record<string, AminoConverter> {
amount: amount,
}),
},
"/cosmos.staking.v1beta1.MsgCancelUnbondingDelegation": {
aminoType: "cosmos-sdk/MsgCancelUnbondingDelegation",
toAmino: ({
delegatorAddress,
validatorAddress,
amount,
creationHeight,
}: MsgCancelUnbondingDelegation): AminoMsgCancelUnbondingDelegation["value"] => {
assertDefinedAndNotNull(amount, "missing amount");
return {
delegator_address: delegatorAddress,
validator_address: validatorAddress,
amount: amount,
creation_height: creationHeight,
};
},
fromAmino: ({
delegator_address,
validator_address,
amount,
creation_height,
}: AminoMsgCancelUnbondingDelegation["value"]): MsgCancelUnbondingDelegation => ({
delegator_address: delegator_address,
validator_address: validator_address,
amount: amount,
creation_height: creation_height,
}),
},
};
}

View File

@ -1,6 +1,7 @@
import { EncodeObject, GeneratedType } from "@cosmjs/proto-signing";
import {
MsgBeginRedelegate,
MsgCancelUnbondingDelegation,
MsgCreateValidator,
MsgDelegate,
MsgEditValidator,
@ -13,6 +14,7 @@ export const stakingTypes: ReadonlyArray<[string, GeneratedType]> = [
["/cosmos.staking.v1beta1.MsgDelegate", MsgDelegate],
["/cosmos.staking.v1beta1.MsgEditValidator", MsgEditValidator],
["/cosmos.staking.v1beta1.MsgUndelegate", MsgUndelegate],
["/cosmos.staking.v1beta1.MsgCancelUnbondingDelegation", MsgCancelUnbondingDelegation],
];
export interface MsgBeginRedelegateEncodeObject extends EncodeObject {
@ -59,3 +61,17 @@ export interface MsgUndelegateEncodeObject extends EncodeObject {
export function isMsgUndelegateEncodeObject(object: EncodeObject): object is MsgUndelegateEncodeObject {
return (object as MsgUndelegateEncodeObject).typeUrl === "/cosmos.staking.v1beta1.MsgUndelegate";
}
export interface MsgCancelUnbondingDelegationEncodeObject extends EncodeObject {
readonly typeUrl: "/cosmos.staking.v1beta1.MsgCancelUnbondingDelegation";
readonly value: Partial<MsgCancelUnbondingDelegation>;
}
export function isMsgCancelUnbondingDelegationEncodeObject(
object: EncodeObject,
): object is MsgCancelUnbondingDelegationEncodeObject {
return (
(object as MsgCancelUnbondingDelegationEncodeObject).typeUrl ===
"/cosmos.staking.v1beta1.MsgCancelUnbondingDelegation"
);
}