Как узнать баланс bitcoin адреса?

На сервере стоит клиент bitcoind.
Для каждого "клиента" создается аккаунт и в нем 4 адресса
var name = ['myaccount'];
var batch = [{method: 'getnewaddress', params: name}, {method: 'getnewaddress', params: name}, {method: 'getnewaddress', params: name}, {method: 'getnewaddress', params: name}];
client.cmd(batch, function(err, address, resHeaders) {
	if (err) return console.log(err);
	console.log('Address:', address);
});


Потом я могу узнать баланс аккаунта
client.cmd('getbalance', 'myaccount', 4, function(err, balance, resHeaders) {
	if (err) return console.log(err);
	console.log('Balance:', balance);
})


Как мне узнать баланс отдельного адреса в аккаунте.

Также, есть ли событие "получили перевод", чтобы я мог на него подписатся и узнавать когда кто то пополнит один из своих адрессов?
  • Вопрос задан
  • 8286 просмотров
Пригласить эксперта
Ответы на вопрос 2
@sprocker
Насколько я знаю, можно вызвать функцию getbalance в bitcoind
На примере Linux:
Вид строки в терминале user@comp:~ bitcoind getbalance $address
$address - один из адресов созданного аккаунта bitcoin

Насчет "получили перевод" - такой функции, по моему, нет, можно попробовать отслеживать по транзакциям на адресе кошелька:
C помощью listtransaction каждые N минут получать последние транзакции, их прогонять через API какого-нибудь блокчейна bitcoin, брать дату из json-расшифровки и сравнивать ее с текущей.
Недостатков у такого варианта море, но наверняка можно придумать и получше схему. Это просто первое что пришло на ум

Вот список вызовов bitcoind, может будет Вам полезно:

code.gogulski.com/bitcoin-php/class_bitcoin_client.html
Ответ написан
Комментировать
uranik
@uranik
Отменили параметр адрес в этой функции, теперь она возвращает баланс всего кошелька :(
см https://bitcoincore.org/en/doc/0.18.0/rpc/wallet/g...

Сейчас узнаю баланс с помощью bitcoin api - через listunspent просумировать непотраченные для нужного адреса.
Это быстрее и удобеее чем через listtransaction (sprocker) парсить весь блокчейн.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы