cosmos / b9-checkers-academy-draft

32 stars 40 forks source link

Wrong valid player checking in a move #30

Closed xavierlepretre closed 2 years ago

xavierlepretre commented 2 years ago

In msg_server_play_move.go, the following logic is wrong:

    // Is it an expected player?
var player rules.Player
if strings.Compare(storedGame.Red, msg.Creator) == 0 {
    player = rules.RED_PLAYER
} else if strings.Compare(storedGame.Black, msg.Creator) == 0 {
    player = rules.BLACK_PLAYER
} else {
    return nil, types.ErrCreatorNotPlayer
}

In the edge case whereby the black and red players have the same address, this piece of code always identifies the caller as red.