-
Notifications
You must be signed in to change notification settings - Fork 28
/
messages_bet.go
64 lines (52 loc) · 1.68 KB
/
messages_bet.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
package types
import (
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/errors"
"github.com/sge-network/sge/utils"
bettypes "github.com/sge-network/sge/x/bet/types"
)
const (
// typeMsgWager is type of message MsgWager
typeMsgWager = "subacc_wager"
)
var _ sdk.Msg = &MsgWager{}
// NewMsgWager returns a MsgWager using given data
func NewMsgWager(creator, ticket string) *MsgWager {
return &MsgWager{
Creator: creator,
Ticket: ticket,
}
}
// Route returns the module's message router key.
func (*MsgWager) Route() string { return RouterKey }
// Type returns type of its message
func (*MsgWager) Type() string { return typeMsgWager }
func (msg *MsgWager) GetSigners() []sdk.AccAddress {
creator, err := sdk.AccAddressFromBech32(msg.Creator)
if err != nil {
panic(err)
}
return []sdk.AccAddress{creator}
}
// GetSignBytes returns sortJson form of its message
func (msg *MsgWager) GetSignBytes() []byte {
bz := ModuleCdc.MustMarshalJSON(msg)
return sdk.MustSortJSON(bz)
}
// ValidateBasic validates basic constraints of original msgWager of bet module.
func (msg *MsgWager) ValidateBasic() error {
if msg.Ticket == "" {
return errors.ErrInvalidRequest.Wrap("ticket is nil")
}
return nil
}
// EmitEvent emits the event for the message success.
func (msg *MsgWager) EmitEvent(ctx *sdk.Context, wagerMsg *bettypes.MsgWager, accOwnerAddr string) {
emitter := utils.NewEventEmitter(ctx, attributeValueCategory)
emitter.AddMsg(typeMsgWager, wagerMsg.Creator,
sdk.NewAttribute(attributeKeyBetCreator, wagerMsg.Creator),
sdk.NewAttribute(attributeKeyBetCreatorOwner, accOwnerAddr),
sdk.NewAttribute(attributeKeyBetUID, wagerMsg.Props.UID),
)
emitter.Emit()
}