From de26351980dc2ca5307491a824a225688cb118dd Mon Sep 17 00:00:00 2001 From: nastyxxaavs Date: Mon, 20 Jan 2025 20:38:59 +0000 Subject: [PATCH] Update process_description.md --- process_description.md | 120 +++++++++++++++++++++++++++++++++++------ 1 file changed, 103 insertions(+), 17 deletions(-) diff --git a/process_description.md b/process_description.md index bff59ca..fd93495 100644 --- a/process_description.md +++ b/process_description.md @@ -39,6 +39,19 @@ wallet3 joinRoom wallet4 joinRoom +- *Подтверждение готовности к игре участниками* + +```$ ./bin/neo-go contract invokefunction -r http://localhost:20331 -w wallet2.json -g gas_payment contractHash confirmReadiness roomId wallet2Hash``` + +##### Аргументы метода: +1. roomId - ID комнаты, которое заранее передано игроку вне данной системы + +##### Аналогично для: + +wallet3 confirmReadiness + +wallet4 confirmReadiness + - *Запуск игры хостом* ```$ ./bin/neo-go contract invokefunction -r http://localhost:20331 -w wallet1.json -g gas_payment contractHash startGame roomId wallet1Hash``` @@ -55,31 +68,104 @@ wallet4 joinRoom 1. roomId - ID созданной комнаты 2. tokenId - ID токена. Так как вопросы хоста представляются в виде уникальных NFT-токенов, то мы передаем их ID -- *Старт вопроса текущего раунда* +- *Отправка ответа на вопрос* +```$ ./bin/neo-go contract invokefunction -r http://localhost:20331 -w wallet2.json -g gas_payment contractHash sendAnswer roomid text wallet2Hash``` + +##### Аргументы метода: +1. roomId - ID созданной комнаты +2. text - ответ на вопрос + +##### Аналогично для: -invokeFunction wallet1.json contractid startQuestion roomid --wallet1 -invokeFunction wallet2.json contractid sendAnswer roomid (string) --wallet2 wallet3 sendAnswer + wallet4 sendAnswer -invokeFunction wallet1.json contractid endQuestion roomid --wallet1 -invokeFunction wallet2.json contractid chooseAnswer roomid --wallet2 -wallet3 chooseAnswer -wallet4 chooseAnswer -invokeFunction wallet1.json contractid getWinner roomid --wallet1 -повторяется игровой цикл -setQuestion -startQuestion -sendAnswers.. -endQuestion -chooseAnswers.. -getWinner +- *Завершение принятие ответов (раунда)* -invokeFunction wallet1.json contractid endGame roomid --wallet1 +```$ ./bin/neo-go contract invokefunction -r http://localhost:20331 -w wallet1.json -g gas_payment contractHash endQuestion roomid wallet1Hash``` + +##### Аргументы метода: +1. roomId - ID созданной комнаты + +- *Отдача голоса за лучший ответ* + +```$ ./bin/neo-go contract invokefunction -r http://localhost:20331 -w wallet2.json -g gas_payment contractHash voteAnswer roomId answerIdx wallet2Hash``` + +##### Аргументы метода: +1. roomId - ID созданной комнаты +2. answerIdx - индекс для сохранения порядка, в котором пишутся ответы при отправке игроками + +##### Аналогично для: + +wallet3 voteAnswer + +wallet4 voteAnswer + +- *Завершение раунда* + +```$ ./bin/neo-go contract invokefunction -r http://localhost:20331 -w wallet1.json -g gas_payment contractHash getRoundWinner roomId wallet1Hash``` + +##### Аргументы метода: +1. roomId - ID созданной комнаты -![Описание основных действующих лиц и их действий](https://git.frostfs.info/nastyxxaavs/web3_draft/src/branch/master/schemes/web3_activity_diagram.jpg) +*Далее повторяется игровой цикл:* + +askQuestion.. + +sendAnswer.. + +endQuestion.. + +voteAnswer.. + +getRoundWinner.. + + +- *Отдача голоса за завершение игры (без учета мнения хоста)* + +```$ ./bin/neo-go contract invokefunction -r http://localhost:20331 -w wallet2.json -g gas_payment contractHash voteToFinishGame roomId wallet2Hash``` + +##### Аргументы метода: +1. roomId - ID созданной комнаты + +##### Аналогично для: + +wallet3 voteToFinishGame + +wallet4 voteToFinishGame + +- *Завершение игры* + +```$ ./bin/neo-go contract invokefunction -r http://localhost:20331 -w wallet1.json -g gas_payment contractHash manuallyFinishGame roomId wallet1Hash``` + +##### Аргументы метода: +1. roomId - ID созданной комнаты + + +### Команды для взаимодействия с NFT-токенами + +- Проверка баланса + +```neo-go wallet nep17 balance --token GAS -r http://localhost:30333 -w /path/to/frostfs-aio/wallets/wallet1.json``` + +- Компиляция и деплой + +```neo-go contract compile -i nep11/contract.go -o nep11/contract.nef -m nep11/contract.manifest.json -c nep11/contract.yml``` + +```neo-go contract deploy -i nep11/contract.nef -m nep11/contract.manifest.json -r http://localhost:30333 -w /path/to/frostfs-aio/wallets/wallet1.json [ walletHash ]``` + +- Трансфер любого токена + +```neo-go wallet nep17 transfer -r http://localhost:30333 -w /path/to/frostfs-aio/wallets/wallet1.json --from walletHash --to walletHash --amount 20 --token GAS nft-name --await``` + +- Трансфер любого NFT-токена + +```neo-go wallet nep11 transfer -r http://localhost:30333 -w /path/to/frostfs-aio/wallets/wallet1.json --from walletHash --to walletHash --token question --id contractId --await``` + +![Обобщенное описание процесса игры](https://git.frostfs.info/nastyxxaavs/web3_draft/src/branch/master/schemes/web3_activity_diagram.jpg)