通過命令行/RPC檢查/輪詢Electrum中地址的餘額
假設,我已經動態地——通過命令行/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"]}