# Gnoland Cheatsheet Github : github.com/slashbinslashnoname/gnoland_cheatsheet You need gnokey to make queries `./gnokey query` and transactions `./gnokey maketx`. You can build and install gnokey following this tutorial : https://gnoland.space/start/create-wallet ## Installing Gnokey and Gnodev Compiling and installing gnokey is *really* easy. ### Compiling ```` git clone git@github.com:gnolang/gno.git cd ./gno make ```` ### Installing gnodev ``` make install_gnodev``` ### Installing gnokey ``` make install_gnokey``` ## Parameters for the next step For testnet "test2" I used to send transactions with these parameters. * Min fee : 1ugnot * Gas : 15000000 (reimbursed if not used) ## Account ### List accounts Useful to get your address ``` gnokey list ``` The address used in this tutorial is `g1ah79e3txw2kd2e8dscr2y2ucr888lm3qwm3v6e`. Change it by your own address :slightly_smiling_face: ### Query account Useful to get the sequence of your transactions and your account number ``` gnokey query "auth/accounts/g1ah79e3txw2kd2e8dscr2y2ucr888lm3qwm3v6e" --remote test2.gno.land:36657 height: 0 data: { "BaseAccount": { "address": "g1ah79e3txw2kd2e8dscr2y2ucr888lm3qwm3v6e", "coins": "489988991ugnot", "public_key": { "@type": "/tm.PubKeySecp256k1", "value": "Ap96kZn7jX9lTBIXj95YZLdTtm95hu57+VNVKCoECbFI" }, "account_number": "660936", "sequence": "18" } } ``` ## Board ### Create a board Change `args` and Account named `g1ah79e3txw2kd2e8dscr2y2ucr888lm3qwm3v6e` with data parsed in previous steps. > Args > Title : slashbin > > Account > Number : 660936 > Sequence : 18 ``` *** Create Board Transaction gnokey maketx call g1ah79e3txw2kd2e8dscr2y2ucr888lm3qwm3v6e --pkgpath "gno.land/r/boards" --func CreateBoard --args "slashbin" --chainid "test2" --send 100000000ugnot --gas-fee 1ugnot --gas-wanted 4000000 > createboard.unsigned.txt *** Sign transaction gnokey sign g1ah79e3txw2kd2e8dscr2y2ucr888lm3qwm3v6e --txpath createboard.unsigned.txt --chainid "test2" --number 660936 --sequence 18 > createboard.signed.txt *** Broadcast Transaction gnokey broadcast createboard.signed.txt --remote test2.gno.land:36657 ``` Other solution with autosign : ``` gnokey maketx call g1ah79e3txw2kd2e8dscr2y2ucr888lm3qwm3v6e --pkgpath "gno.land/r/boards" --func CreateBoard --args "slashbin" --chainid "test2" --broadcast true --send 100000000ugnot --gas-fee 1ugnot --gas-wanted 4000000 --remote "test2.gno.land:36657" ``` ## Create a Thread You first need to get the Board ID ### Get the Board ID Pushing a transaction (cost gas) ``` gnokey maketx call g1ah79e3txw2kd2e8dscr2y2ucr888lm3qwm3v6e --pkgpath "gno.land/r/boards" --func "GetBoardIDFromName" --gas-fee 1ugnot --gas-wanted 4000000 --broadcast true --chainid test2 --args "slashbin" --remote test2.gno.land:36657 ``` Making a simple query (doesn't cost gas) > Notice the newline \n, used to pass multiple instructions. ``` gnokey query "vm/qeval" --data "gno.land/r/boards\nGetBoardIDFromName(\"slashbin\")" --remote test2.gno.land:36657 ``` ### Create a thread on the Board Use the args gotten previously (`1461` in our example) > Title : *Hire me* > Content : *https://twitter.com/slashbin_fr* ``` gnokey maketx call g1ah79e3txw2kd2e8dscr2y2ucr888lm3qwm3v6e --pkgpath "gno.land/r/boards" --func "CreateThread" --gas-fee 1000ugnot --gas-wanted 4000000 --broadcast true --chainid test2 --args "1461" --args "Hire me" --args "https://twitter.com/slashbin_fr" --remote test2.gno.land:36657 ``` ### Render the Board > Notice that we got rid of the newline \n, it works well too ``` gnokey query "vm/qrender" --data "gno.land/r/boards slashbin" --remote test2.gno.land:36657 ``` ### Create a reply > Notice the higher gas fee. I used the next step to verify why the transaction was not validated. ``` gnokey maketx call g1ah79e3txw2kd2e8dscr2y2ucr888lm3qwm3v6e --pkgpath "gno.land/r/boards" --func "CreateReply" --gas-fee 1ugnot --gas-wanted 5000000 --broadcast true --chainid test2 --args "1461" --args "1" --args "1" --args "https://github.com/slashbinslashnoname/gnoland_cheatsheet" --remote test2.gno.land:36657 ``` ## Verifying your transaction You can verify your transaction by using rpc.gno.tools with the tx.height used to debug your transaction. https://rpc.gno.tools/tx_search?query="tx.height=202977" ## Outro Next tutorial will learn you how to deploy a very simple smartcontract. I hope you enjoyed this tutorial. You can reach me at twitter.com/slashbin_fr and you already have my Gnoland account :smiley_cat: :black_heart: