chess package

Overview

Realm chess implements a Gno chess server.

Functions

Abort

func Abort(cur realm, gameID string) string

Param

Command

gnokey query -remote "https://rpc.test6.testnets.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/morgan/chess" -func "Abort"  -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "test6" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.test6.testnets.gno.land" call.tx

ClaimTimeout

func ClaimTimeout(cur realm, gameID string) string

ClaimTimeout should be called when the caller believes the game has resulted in a timeout.

Param

Command

gnokey query -remote "https://rpc.test6.testnets.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/morgan/chess" -func "ClaimTimeout"  -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "test6" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.test6.testnets.gno.land" call.tx

Draw

func Draw(cur realm, gameID string) string

Draw implements draw by agreement, as well as "single-party" draw: - Threefold repetition (§9.2) - Fifty-move rule (§9.3) - Insufficient material (§9.4) Note: stalemate happens as a consequence of a Move, and thus is handled in that function.

Param

Command

gnokey query -remote "https://rpc.test6.testnets.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/morgan/chess" -func "Draw"  -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "test6" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.test6.testnets.gno.land" call.tx

DrawOffer

func DrawOffer(cur realm, gameID string) string

DrawOffer creates a draw offer in the current game, if one doesn't already exist.

Param

Command

gnokey query -remote "https://rpc.test6.testnets.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/morgan/chess" -func "DrawOffer"  -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "test6" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.test6.testnets.gno.land" call.tx

DrawRefuse

func DrawRefuse(cur realm, gameID string) string

DrawRefuse refuse a draw offer in the given game.

Param

Command

gnokey query -remote "https://rpc.test6.testnets.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/morgan/chess" -func "DrawRefuse"  -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "test6" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.test6.testnets.gno.land" call.tx

GetGame

func GetGame(id string) string

GetGame returns a game, knowing its ID.

Param

Command

gnokey query -remote "https://rpc.test6.testnets.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/morgan/chess" -func "GetGame"  -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "test6" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.test6.testnets.gno.land" call.tx

GetPlayer

func GetPlayer(player string) string

Param

Command

gnokey query -remote "https://rpc.test6.testnets.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/morgan/chess" -func "GetPlayer"  -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "test6" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.test6.testnets.gno.land" call.tx

Leaderboard

func Leaderboard(category string) string

Leaderboard returns a list of all users, ordered by their position in the leaderboard. category is one of blitz, rapid or correspondence.

Param

Command

gnokey query -remote "https://rpc.test6.testnets.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/morgan/chess" -func "Leaderboard"  -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "test6" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.test6.testnets.gno.land" call.tx

ListGames

func ListGames(filters string) string

ListGames provides game listing functionality, with filter-based search functionality. available filters: player:<player> white:<player> black:<player> finished:bool limit:int id<cmp>int sort:asc/desc <cmp>: '<' or '>' <player>: either a bech32 address, "@user" (r/demo/users), or "caller"

Param

Command

gnokey query -remote "https://rpc.test6.testnets.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/morgan/chess" -func "ListGames"  -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "test6" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.test6.testnets.gno.land" call.tx

LobbyGameFound

func LobbyGameFound(cur realm) string

Command

gnokey query -remote "https://rpc.test6.testnets.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/morgan/chess" -func "LobbyGameFound"  -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "test6" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.test6.testnets.gno.land" call.tx

LobbyJoin

func LobbyJoin(cur realm, seconds, increment int)

Params

Command

gnokey query -remote "https://rpc.test6.testnets.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/morgan/chess" -func "LobbyJoin"  -args "" -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "test6" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.test6.testnets.gno.land" call.tx

LobbyQuit

func LobbyQuit(cur realm)

Command

gnokey query -remote "https://rpc.test6.testnets.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/morgan/chess" -func "LobbyQuit"  -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "test6" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.test6.testnets.gno.land" call.tx

MakeMove

func MakeMove(cur realm, gameID, from, to string, promote chess.Piece) string

MakeMove specifies a move to be done on the given game, specifying in algebraic notation the square where to move the piece. If the piece is a pawn which is moving to the last row, a promotion piece must be specified. Castling is specified by indicating the king's movement.

Params

Command

gnokey query -remote "https://rpc.test6.testnets.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/morgan/chess" -func "MakeMove"  -args "" -args "" -args "" -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "test6" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.test6.testnets.gno.land" call.tx

Resign

func Resign(cur realm, gameID string) string

Param

Command

gnokey query -remote "https://rpc.test6.testnets.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/morgan/chess" -func "Resign"  -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "test6" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.test6.testnets.gno.land" call.tx

CategoryFromString

func CategoryFromString(s string) Category

Param

Command

gnokey query -remote "https://rpc.test6.testnets.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/morgan/chess" -func "CategoryFromString"  -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "test6" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.test6.testnets.gno.land" call.tx

NewTimeControl

func NewTimeControl(seconds, incr int) *TimeControl

Params

Command

gnokey query -remote "https://rpc.test6.testnets.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/morgan/chess" -func "NewTimeControl"  -args "" -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "test6" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.test6.testnets.gno.land" call.tx