# Онлайн казино ZaSlot ### Проект представляет собой сайт, с возможностью подключить свой кошелек через Neon, пополнить баланс с нашей внутреигровой валютой и поиграть в различные игры (смарт-контракты) Весь функционал доступен и из терминала. Ряд команд, для взаимодействия с контрактами представлен ниже ### Получение внутреигровой валюты на кошелек * Получение 50 ZaCoin`ов в случае, если на балансе меньше 5 токенов: ``` neo-go contract invokefunction -r https://testnet2.neo.coz.io:443 -w 66621b53f51303d29a224cb6e5deeec30ad2631b getZaCoin -- '<адрес вашего кошелька>' ``` ### Проверка баланса ``` neo-go wallet nep17 balance -w -r https://testnet2.neo.coz.io:443 ``` ### Игровые контракты: * Камень, ножницы, бумага (или RPS): ``` neo-go contract invokefunction -r https://testnet2.neo.coz.io:443 -w ae71ad7c8174530cddecf483e8094539f84fcd7f playRPS int:<1 - камень, 2 - ножницы, 3 - бумага> int:<ставка> -- '<адрес вашего кошелька>:CalledByEntry,CustomContracts:fdfb5c2974779e9cb9347e083a80054feae55a2d' ``` * Слот-машина: ``` neo-go contract invokefunction -r https://testnet2.neo.coz.io:443 -w 21ab5b0e8979723de78dbdb4177aeb10a8ebef16 rollSlot int:<ставка> -- '<адрес вашего кошелька>:CalledByEntry,CustomContracts:fdfb5c2974779e9cb9347e083a80054feae55a2d' ``` * Рулетка: ``` neo-go contract invokefunction -r https://testnet2.neo.coz.io:443 -w e3db32d1089c4b0a31dc26561ef337edf5d7ad02 playRoulette int:<ставка> int:<число на которое ставите> -- '<адрес вашего кошелька>:CalledByEntry,CustomContracts:fdfb5c2974779e9cb9347e083a80054feae55a2d ``` * Кости (Craps): ``` neo-go contract invokefunction -r https://testnet2.neo.coz.io:443 -w 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