47 lines
1.2 KiB
Go
47 lines
1.2 KiB
Go
package types
|
|
|
|
import (
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
|
|
)
|
|
|
|
const TypeMsgRegisterAccountAsGuardian = "register_account_as_guardian"
|
|
|
|
var _ sdk.Msg = &MsgRegisterAccountAsGuardian{}
|
|
|
|
func NewMsgRegisterAccountAsGuardian(signer string, signature []byte) *MsgRegisterAccountAsGuardian {
|
|
return &MsgRegisterAccountAsGuardian{
|
|
Signer: signer,
|
|
Signature: signature,
|
|
}
|
|
}
|
|
|
|
func (msg *MsgRegisterAccountAsGuardian) Route() string {
|
|
return RouterKey
|
|
}
|
|
|
|
func (msg *MsgRegisterAccountAsGuardian) Type() string {
|
|
return TypeMsgRegisterAccountAsGuardian
|
|
}
|
|
|
|
func (msg *MsgRegisterAccountAsGuardian) GetSigners() []sdk.AccAddress {
|
|
signer, err := sdk.AccAddressFromBech32(msg.Signer)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
return []sdk.AccAddress{signer}
|
|
}
|
|
|
|
func (msg *MsgRegisterAccountAsGuardian) GetSignBytes() []byte {
|
|
bz := ModuleCdc.MustMarshalJSON(msg)
|
|
return sdk.MustSortJSON(bz)
|
|
}
|
|
|
|
func (msg *MsgRegisterAccountAsGuardian) ValidateBasic() error {
|
|
_, err := sdk.AccAddressFromBech32(msg.Signer)
|
|
if err != nil {
|
|
return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid signer address (%s)", err)
|
|
}
|
|
return nil
|
|
}
|