Go-Ethereum
通過 JSON RPC 獲取合約餘額
我想通過 Geth JSON-RPC API 讀取合約餘額(合約上未使用的 ETH 數量)。
例如這裡顯示的數字:http: //testnet.etherscan.io/address/0xc5910bcb2442e84845aa98b20ca51e8f5d2bee23
什麼是一個好的起點?
這是一個使用 Linux 實用程序通過JSON-RPC
curl
檢索契約餘額的範例:curl -s -X POST --data '{"jsonrpc":"2.0", "method":"eth_getBalance", "params":["0xc5910bcb2442e84845aa98b20ca51e8f5d2bee23", "latest"], "id":1}' http://localhost:8545
您必須從
geth
參數--rpc
開始執行curl
上面的程序,例如,geth --testnet --rpc console
您收到的結果將是十六進制格式的 weis 數:
{"jsonrpc":"2.0","id":1,"result":"0x58d15e17628000f"}
使用十六進製到十進制轉換器將此數字轉換為十進制的
400000000000000015
weis。要計算乙太幣的數量,請將十進制數除以 1e18,您的結果就是乙太幣
0.400000000000000015
。
geth
並使用JavaScript 控制台檢查餘額:> web3.fromWei(eth.getBalance("0xc5910bcb2442e84845aa98b20ca51e8f5d2bee23"), "ether") > 0.400000000000000015
這是我的 Perl 程式碼,用於將十六進制 wei 數字轉換為雙乙太數字:
sub hexToDouble{ my $param = shift; $param =~ s/^0x//; my $fullnum = 0.0; while ($param =~ /(.)/g) { my $num = hex($1); $fullnum = $fullnum * 16 + $num; } $fullnum *= 1e-18; return $fullnum; }