feat: add msg cancel unbond to amino and messages staking module
This commit is contained in:
parent
287278004b
commit
9712967d50
@ -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,
|
||||
}),
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
@ -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"
|
||||
);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user