- PVSM.RU - https://www.pvsm.ru -
Так как не знаю никакие Монеро кошельки на мобильном устройстве, а в Trust Wallet и Cryptobot попросту нет этой монеты, решил сделать свою реализацию, которую уже на удивление можно считать MVP и свободно принимать и переводить XMR.
Для начала, скачиваем Monero CLI Wallet, для того чтобы взаимодействовать с блокчейном:
https://www.getmonero.org/downloads/ [1]
./monero-wallet-cli
Создаем название файла кошелька и пароль. Кошелек готов.
Можно установить как службу через systemd, либо на фон через nohup.
Пример скачивания блокчейна целиком: (>150гб)
nohup ./monerod --rpc-bind-ip 0.0.0.0 --rpc-bind-port 18081 --confirm-external-bind &
Pruned версия: (<100гб)
nohup ./monerod --rpc-bind-ip 0.0.0.0 --rpc-bind-port 18081 --confirm-external-bind --prune-blocks &
Биндите RPC на 0.0.0.0 чтобы ваш нод был доступен из интернета другим пользователям.
Биндите RPC на 127.0.0.1 для доступа только из локальной сети для бота. (убрать --confirm-external-bind)
Далее, запускаем ./monero-wallet-rpc для операций с кошельком.
nohup ./monero-wallet-rpc --rpc-bind-ip 127.0.0.1 --rpc-bind-port 18083 --wallet-file {path_to_wallet_file} --password "habrahabr" --daemon-host 127.0.0.1:18081 --trusted-daemon --disable-rpc-login &
Готово, теперь можно использовать методы из RPC документации: https://www.getmonero.org/resources/developer-guides/wallet-rpc.html [2]
В том числе: создание адресов, перевод средств и экспорт транзакций. Используя 127.0.0.1:18083/json_rpc
.
К примеру, посмотрим баланс кошелька с помощью python requests:
url = "http://127.0.0.1:18083/json_rpc"
headers = { 'content-type': 'application/json' }
payload = json.dumps({
"jsonrpc":"2.0",
"id":"0",
"method":"get_balance",
"params":{
"account_index":0,
"address_indices":[0]
}
})
response = requests.post(url, data=payload, headers=headers)
print(response.json())
RPC возвращает баланс в виде атомарных единиц, чтобы перевести в привычный вид XMR:format(atomic_units / (10**12), ".12f")
И обратно, к примеру, для отправки средств: (Функция transfer, соответственно)int(float(xmr_amount) * (10**12))
Реализация функций: https://t.me/wallet_xmrbot [3]
Исходный код: https://github.com/amlkyc/xmrbot [4]
Автор: sea256
Источник [5]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/python/400377
Ссылки в тексте:
[1] https://www.getmonero.org/downloads/: https://www.getmonero.org/downloads/
[2] https://www.getmonero.org/resources/developer-guides/wallet-rpc.html: https://www.getmonero.org/resources/developer-guides/wallet-rpc.html
[3] https://t.me/wallet_xmrbot: https://t.me/wallet_xmrbot
[4] https://github.com/amlkyc/xmrbot: https://github.com/amlkyc/xmrbot
[5] Источник: https://habr.com/ru/articles/852890/?utm_campaign=852890&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.