Api

通過命令行/RPC檢查/輪詢Electrum中地址的餘額

  • June 12, 2019

假設,我已經動態地——通過命令行/RPC——在 Electrum 中創建了一個地址或 payment_query。並將其詳細資訊與我希望收到的比特幣數量一起保存在數據庫中。

那麼如何檢查/輪詢該數量的比特幣是否已到達該地址?也可以通過命令行/RPC。

我不想收到 Electrum 的通知,而是想自己輪詢 Electrum 守護程序。因此,Electrum 可以發送到 URL 的 http 請求回調不是我正在尋找的選項。另外,目前,我在本地沒有區塊鏈。不過,也許稍後我會添加它。

有幾種方法取決於您使用的是什麼。如果您想查詢守護程序 - 必須假設您正在執行 Linux 機器或 VPS

您不想要或不需要“地址餘額” - 您需要您的錢包餘額

這個問題已經在這裡得到了部分回答 => 如何在 PHP 中監控交易地址和 1 次確認?

然而,最好的方法是使用 Electrum 文件推薦的內容 - 像這樣的 curl 呼叫 => curl --data-binary '{"id":"curltext","method":"getbalance","params":{"funded":true}}' http://127.0.0.1:7777

如果您使用的是 PHP - 它看起來像這樣:

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "http://127.0.0.1:7777");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"id\":\"curltext\",\"method\":\"getbalance\",\"params\":{\"funded\":true}}");
curl_setopt($ch, CURLOPT_POST, 1);

$headers = array();
$headers[] = "Content-Type: application/x-www-form-urlencoded";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$result = curl_exec($ch);
if (curl_errno($ch)) {
   echo 'Error:' . curl_error($ch);
}
curl_close ($ch);

您可以在 try-catch 中進行此操作,並通過以您想要檢查的任何時間間隔執行的 cron 作業來觸發它

返回的是一個 JSON-RPC 文件,您可以將其解碼為數組

$result =  json_decode($response, true);

並將其插入到另一個變數中,用於您想要從那里處理的單個事物或事物

$wanted = $result["result"]["xxxxxxxxx"];

任何參數都可以作為變數傳遞給 curl 呼叫

例如添加一個請求,它會像這樣:

curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"id\":\"curltext\",\"method\":\"addrequest\",\"params\":{\"amount\":\"$how_much\",\"memo\":\"$your_memo->some_data_field\"}}");

您只需要執行“getbalance” - 或任何 - 命令查看它返回的內容並調整您的程式碼以從“result”中提取返回值 - 您只需測試大於“0”,然後通過發送它來清空錢包到另一個錢包並等待下一次付款

然後,您可以使用該數據觸發“做某事”,例如上面中間範例中的電子郵件範例。

剛剛了解瞭如何使用 Electrum RPC 查找地址餘額:

{"id":"myquery","method":"getaddressbalance","params":["14vuRY354EaxDu4WrgjtvoDEwntDNwMVbx"]}

引用自:https://bitcoin.stackexchange.com/questions/51499