.github/workflows | ||
Craps | ||
frontend/casino | ||
Roulette | ||
RPS | ||
SlotMashine | ||
ZaCoin | ||
ZaCoinRefill | ||
.env | ||
.gitignore | ||
README.md |
Онлайн казино ZaSlot
Проект представляет собой сайт, с возможностью подключить свой кошелек через Neon, пополнить баланс с нашей внутреигровой валютой и поиграть в различные игры (смарт-контракты)
Весь функционал доступен и из терминала. Ряд команд, для взаимодействия с контрактами представлен ниже
Получение внутреигровой валюты на кошелек
- Получение 50 ZaCoin`ов в случае, если на балансе меньше 5 токенов:
neo-go contract invokefunction -r https://testnet2.neo.coz.io:443 -w <json файл вашего кошелька> 66621b53f51303d29a224cb6e5deeec30ad2631b getZaCoin -- '<адрес вашего кошелька>'
Проверка баланса
neo-go wallet nep17 balance -w <json файл вашего кошелька> -r https://testnet2.neo.coz.io:443
Игровые контракты:
- Камень, ножницы, бумага (или RPS):
neo-go contract invokefunction -r https://testnet2.neo.coz.io:443 -w <json файл вашего кошелька> ae71ad7c8174530cddecf483e8094539f84fcd7f playRPS int:<1 - камень, 2 - ножницы, 3 - бумага> int:<ставка> -- '<адрес вашего кошелька>:CalledByEntry,CustomContracts:fdfb5c2974779e9cb9347e083a80054feae55a2d'
- Слот-машина:
neo-go contract invokefunction -r https://testnet2.neo.coz.io:443 -w <json файл вашего кошелька> 21ab5b0e8979723de78dbdb4177aeb10a8ebef16 rollSlot int:<ставка> -- '<адрес вашего кошелька>:CalledByEntry,CustomContracts:fdfb5c2974779e9cb9347e083a80054feae55a2d'
- Рулетка:
neo-go contract invokefunction -r https://testnet2.neo.coz.io:443 -w <json файл вашего кошелька> e3db32d1089c4b0a31dc26561ef337edf5d7ad02 playRoulette int:<ставка> int:<число на которое ставите> -- '<адрес вашего кошелька>:CalledByEntry,CustomContracts:fdfb5c2974779e9cb9347e083a80054feae55a2d
- Кости (Craps):
neo-go contract invokefunction -r https://testnet2.neo.coz.io:443 -w <json файл вашего кошелька> 490e3778e5247eccea7ff960e7253047b4c72545 playCraps int:<ставка> int:<число от 2 до 12> int:<число от 2 до 12> -- '<адрес вашего кошелька>:CalledByEntry,CustomContracts:fdfb5c2974779e9cb9347e083a80054feae55a2d'
Получение уведомлений:
curl -d '{ "jsonrpc": "2.0", "id": 1, "method": "getapplicationlog", "params": ["<хэш транзакции>"] }' https://testnet2.neo.coz.io:443 | json_pp;
Что касается так называемого фронтена
Сейчас пойдёт маленький ликбез. Была проделана познавательная работа по подключению Neo-блокчейна к клиенту. Первым шагом был поиск необходимого sdk для подключения кошельков. Выбор сразу же упал на @cityofzion/wallet-connect-sdk, но на момент ресёрча, а именно ноябрь 2023 - WalletConnector (кор либы) не работал в РФ уже как 2 месяца и предпосылок к его разблокировке не было, и именно поэтому ресёрч продолжился и ничем хорошим не закончился. Дальше в декабре поступила радостная новость, что библиотека для так называемых децентрализованных приложений наконец-то начала снова работать => окончательный выбор остался на ней (будто бы был выбор).
Вторым шагом пошла вёрстка всего, ну тут всё понятно Третьим шагом началось использование библиотеки вместе с кошельком Neon. Библиотека отваливалась каждый раз, когда ей захочется, но дело было сделано. Далее после долгих попыток вызвать контракт методом тыка (по-другому никак) началась проблема получения данных с транзакции. Оказывается, ни один из существующих эксплореров под нео не предоставляет необходимого Api для этого (???) Поэтому пришлось писать свой слушатель через поллинг к одному из эксплореров.
Теперь к технической части
Стек: React, TS, @cityofzion/wallet-connect-sdk-react, tailwind
Вся работа с web3 лежит в папке frontend/casino/web3