diff --git a/CHANGELOG.md b/CHANGELOG.md index 65ce39e1786..69aa9ad0a39 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -42,6 +42,8 @@ Ref: https://keepachangelog.com/en/1.0.0/ ### State Machine Breaking +* [\#3907](https://github.com/cosmos/ibc-go/pull/3907) Re-implemented missing functions of `LegacyMsg` interface to fix transaction signing with ledger. + ### Improvements * (tests) [\#3138](https://github.com/cosmos/ibc-go/pull/3138) Support benchmarks and fuzz tests through `testing.TB`. diff --git a/modules/apps/29-fee/types/msgs.go b/modules/apps/29-fee/types/msgs.go index cf39b7fdd73..9063a4101a6 100644 --- a/modules/apps/29-fee/types/msgs.go +++ b/modules/apps/29-fee/types/msgs.go @@ -6,12 +6,28 @@ import ( errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" + legacytx "github.com/cosmos/cosmos-sdk/x/auth/migrations/legacytx" channeltypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" host "github.com/cosmos/ibc-go/v7/modules/core/24-host" ibcerrors "github.com/cosmos/ibc-go/v7/modules/core/errors" ) +// msg types +const ( + TypeMsgPayPacketFee = "payPacketFee" + TypeMsgPayPacketFeeAsync = "payPacketFeeAsync" +) + +var ( + _ sdk.Msg = (*MsgRegisterPayee)(nil) + _ sdk.Msg = (*MsgRegisterCounterpartyPayee)(nil) + _ sdk.Msg = (*MsgPayPacketFee)(nil) + _ sdk.Msg = (*MsgPayPacketFeeAsync)(nil) + _ legacytx.LegacyMsg = (*MsgPayPacketFee)(nil) + _ legacytx.LegacyMsg = (*MsgPayPacketFeeAsync)(nil) +) + // NewMsgRegisterPayee creates a new instance of MsgRegisterPayee func NewMsgRegisterPayee(portID, channelID, relayerAddr, payeeAddr string) *MsgRegisterPayee { return &MsgRegisterPayee{ @@ -146,12 +162,17 @@ func (msg MsgPayPacketFee) GetSigners() []sdk.AccAddress { return []sdk.AccAddress{signer} } -// Route implements sdk.Msg +// Type implements legacytx.LegacyMsg +func (msg MsgPayPacketFee) Type() string { + return TypeMsgPayPacketFee +} + +// Route implements legacytx.LegacyMsg func (msg MsgPayPacketFee) Route() string { return RouterKey } -// GetSignBytes implements sdk.Msg. +// GetSignBytes implements legacytx.LegacyMsg func (msg MsgPayPacketFee) GetSignBytes() []byte { return sdk.MustSortJSON(AminoCdc.MustMarshalJSON(&msg)) } @@ -183,12 +204,17 @@ func (msg MsgPayPacketFeeAsync) GetSigners() []sdk.AccAddress { return []sdk.AccAddress{signer} } -// Route implements sdk.Msg +// Type implements legacytx.LegacyMsg +func (msg MsgPayPacketFeeAsync) Type() string { + return TypeMsgPayPacketFeeAsync +} + +// Route implements legacytx.LegacyMsg func (msg MsgPayPacketFeeAsync) Route() string { return RouterKey } -// GetSignBytes implements sdk.Msg. +// GetSignBytes implements legacytx.LegacyMsg func (msg MsgPayPacketFeeAsync) GetSignBytes() []byte { return sdk.MustSortJSON(AminoCdc.MustMarshalJSON(&msg)) } diff --git a/modules/apps/transfer/types/msgs.go b/modules/apps/transfer/types/msgs.go index 7bc92bf3363..08eeaff89f9 100644 --- a/modules/apps/transfer/types/msgs.go +++ b/modules/apps/transfer/types/msgs.go @@ -6,13 +6,23 @@ import ( errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" + legacytx "github.com/cosmos/cosmos-sdk/x/auth/migrations/legacytx" clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" host "github.com/cosmos/ibc-go/v7/modules/core/24-host" ibcerrors "github.com/cosmos/ibc-go/v7/modules/core/errors" ) -var _ sdk.Msg = (*MsgUpdateParams)(nil) +// msg types +const ( + TypeMsgTransfer = "transfer" +) + +var ( + _ sdk.Msg = (*MsgUpdateParams)(nil) + _ sdk.Msg = (*MsgTransfer)(nil) + _ legacytx.LegacyMsg = (*MsgTransfer)(nil) +) // NewMsgUpdateParams creates a new MsgUpdateParams instance func NewMsgUpdateParams(authority string, params Params) *MsgUpdateParams { @@ -61,7 +71,12 @@ func NewMsgTransfer( } } -// Route implements sdk.Msg +// Type implements legacytx.LegacyMsg +func (MsgTransfer) Type() string { + return TypeMsgTransfer +} + +// Route implements legacytx.LegacyMsg func (MsgTransfer) Route() string { return RouterKey } @@ -94,7 +109,7 @@ func (msg MsgTransfer) ValidateBasic() error { return ValidateIBCDenom(msg.Token.Denom) } -// GetSignBytes implements sdk.Msg. +// GetSignBytes implements legacytx.LegacyMsg func (msg MsgTransfer) GetSignBytes() []byte { return sdk.MustSortJSON(AminoCdc.MustMarshalJSON(&msg)) }