53 lines
5.6 KiB
Markdown
53 lines
5.6 KiB
Markdown
# Онлайн казино ZaSlot
|
|
### Проект представляет собой сайт, с возможностью подключить свой кошелек через Neon, пополнить баланс с нашей внутреигровой валютой и поиграть в различные игры (смарт-контракты)
|
|
|
|
Весь функционал доступен и из терминала. Вот ряд команд, которые может использовать пользователь, чтобы поиграть в наш проект:
|
|
### Получение нашей внутреигровой валюты на ваш кошелек
|
|
* Способ ниже позволяет получить 50 ZaCoin`ов если на кошельке их меньше 5:
|
|
```
|
|
neo-go contract invokefunction -r https://testnet2.neo.coz.io:443 -w <json файл вашего кошелька> 66621b53f51303d29a224cb6e5deeec30ad2631b getZaCoin -- '<адрес вашего кошелька>'
|
|
```
|
|
* Также можно сделать минт монетки:
|
|
```
|
|
neo-go contract invokefunction -r https://testnet2.neo.coz.io:443 -w <json файл вашего кошелька> fdfb5c2974779e9cb9347e083a80054feae55a2d mint hash160:<адрес вашего кошелька>
|
|
```
|
|
### Проверка баланса
|
|
```
|
|
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:<число на первой кости> int:<число на второй кости> -- '<адрес вашего кошелька>: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
|
|
|