-
Notifications
You must be signed in to change notification settings - Fork 82
/
msg.go
134 lines (114 loc) · 3.54 KB
/
msg.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
package types
import (
errorsmod "cosmossdk.io/errors"
sdk "github.com/cosmos/cosmos-sdk/types"
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
)
var (
_ sdk.Msg = &MsgPromoteToPrivilegedContract{}
_ sdk.Msg = &MsgDemoteFromPrivilegedContract{}
)
// msg types
const (
TypeMsgPromoteToPrivilegedContract = "promote_to_privileged_contract"
TypeMsgDemoteFromPrivilegedContract = "demote_from_privileged_contract"
TypeMsgUpdateParams = "update_params"
)
func NewMsgPromoteToPrivilegedContract(sender string, contractAddr string) *MsgPromoteToPrivilegedContract {
return &MsgPromoteToPrivilegedContract{
Authority: sender,
Contract: contractAddr,
}
}
func (msg MsgPromoteToPrivilegedContract) Route() string {
return RouterKey
}
func (msg MsgPromoteToPrivilegedContract) Type() string {
return TypeMsgPromoteToPrivilegedContract
}
func (msg MsgPromoteToPrivilegedContract) GetSigners() []sdk.AccAddress {
sender, err := sdk.AccAddressFromBech32(msg.Authority)
if err != nil {
panic(err)
}
return []sdk.AccAddress{sender}
}
func (msg MsgPromoteToPrivilegedContract) GetSignBytes() []byte {
bz := ModuleCdc.MustMarshalJSON(&msg)
return sdk.MustSortJSON(bz)
}
func (msg MsgPromoteToPrivilegedContract) ValidateBasic() error {
_, err := sdk.AccAddressFromBech32(msg.Authority)
if err != nil {
return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid sender address (%s)", err)
}
_, err = sdk.AccAddressFromBech32(msg.Contract)
if err != nil {
return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid contract address (%s)", err)
}
return nil
}
func NewMsgDemoteFromPrivilegedContract(sender string, contractAddr string) *MsgDemoteFromPrivilegedContract {
return &MsgDemoteFromPrivilegedContract{
Authority: sender,
Contract: contractAddr,
}
}
func (msg MsgDemoteFromPrivilegedContract) Route() string {
return RouterKey
}
func (msg MsgDemoteFromPrivilegedContract) Type() string {
return TypeMsgDemoteFromPrivilegedContract
}
func (msg MsgDemoteFromPrivilegedContract) GetSigners() []sdk.AccAddress {
sender, err := sdk.AccAddressFromBech32(msg.Authority)
if err != nil {
panic(err)
}
return []sdk.AccAddress{sender}
}
func (msg MsgDemoteFromPrivilegedContract) GetSignBytes() []byte {
bz := ModuleCdc.MustMarshalJSON(&msg)
return sdk.MustSortJSON(bz)
}
func (msg MsgDemoteFromPrivilegedContract) ValidateBasic() error {
_, err := sdk.AccAddressFromBech32(msg.Authority)
if err != nil {
return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid sender address (%s)", err)
}
_, err = sdk.AccAddressFromBech32(msg.Contract)
if err != nil {
return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid contract address (%s)", err)
}
return nil
}
func (msg MsgUpdateParams) Route() string {
return RouterKey
}
func (msg MsgUpdateParams) Type() string {
return TypeMsgUpdateParams
}
func (msg MsgUpdateParams) GetSigners() []sdk.AccAddress {
sender, err := sdk.AccAddressFromBech32(msg.Authority)
if err != nil {
panic(err)
}
return []sdk.AccAddress{sender}
}
func (msg MsgUpdateParams) GetSignBytes() []byte {
bz := ModuleCdc.MustMarshalJSON(&msg)
return sdk.MustSortJSON(bz)
}
func (msg MsgUpdateParams) ValidateBasic() error {
_, err := sdk.AccAddressFromBech32(msg.Authority)
if err != nil {
return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid sender address (%s)", err)
}
for _, a := range msg.Params.GetAdminAddresses() {
_, err = sdk.AccAddressFromBech32(a)
if err != nil {
return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid admin address (%s)", err)
}
}
return nil
}