Как получить баланс счета в Ethereum?
Как я могу программно узнать, сколько ETH находится в данной учетной записи на блокчейне Ethereum?
2 ответов
на сайте:
(не программный, но для полноты...) Если вы просто хотите получить баланс счета или контракта, вы можете посетитьhttp://etherchain.org или http://etherscan.io.
из консолей geth, eth, pyeth:
используя Javascript API (который используется консолями geth, eth и pyeth), вы можете получить баланс счета с помощью следующий:
web3.fromWei(eth.getBalance(eth.coinbase));
"web3" является Ethereum-совместимая библиотека Javascript web3.js.
"eth" на самом деле является сокращением от "web3.eth " (автоматически доступен в geth). Итак, действительно, выше следует написать:
web3.fromWei(web3.eth.getBalance(web3.eth.coinbase));
"web3.федеральный технологический институт.coinbase " - учетная запись по умолчанию для сеанса консоли. Вы можете подключить другие значения для него, если хотите. Все остатки на счетах открыты в Ethereum. Ex, если у вас есть несколько учетные записи:
web3.fromWei(web3.eth.getBalance(web3.eth.accounts[0]));
web3.fromWei(web3.eth.getBalance(web3.eth.accounts[1]));
web3.fromWei(web3.eth.getBalance(web3.eth.accounts[2]));
или
web3.fromWei(web3.eth.getBalance('0x2910543af39aba0cd09dbb2d50200b3e800a63d2'));
EDIT: вот удобный скрипт для перечисления остатков на всех ваших счетах:
function checkAllBalances() { var i =0; eth.accounts.forEach( function(e){ console.log(" eth.accounts["+i+"]: " + e + " \tbalance: " + web3.fromWei(eth.getBalance(e), "ether") + " ether"); i++; })}; checkAllBalances();
Внутри Договорам:
внутри контрактов, солидность обеспечивает простой способ получить баланс. Каждый адрес имеет .balance свойство, которое возвращает значение в wei. Образец контракта:
contract ownerbalancereturner {
address owner;
function ownerbalancereturner() public {
owner = msg.sender;
}
function getOwnerBalance() constant returns (uint) {
return owner.balance;
}
}
для новой версии API web3:
последняя версия web3 API (vers. бета-1.xx) использует обещания (асинхронные, как и обратного). Документация:бета web3 1.xx
следовательно, это обещание и возвращает строку для данного адреса в Вэй.
Я Linux (openSUSE),Гет 1.7.3, Rinkeby Ethereum testnet, используя Метеор 1.6.1, и получил это работать следующим образом, подключаясь через поставщик IPC к моему узлу geth:
// serverside js file
import Web3 from 'web3';
if (typeof web3 !== 'undefined') {
web3 = new Web3(web3.currentProvider);
} else {
var net = require('net');
var web3 = new Web3('/home/xxYourHomeFolderxx/.ethereum/geth.ipc', net);
};
// set the default account
web3.eth.defaultAccount = '0x123..............';
web3.eth.coinbase = '0x123..............';
web3.eth.getAccounts(function(err, acc) {
_.each(acc, function(e) {
web3.eth.getBalance(e, function (error, result) {
if (!error) {
console.log(e + ': ' + result);
};
});
});
});