如何在以太坊获得帐户余额?

fiv*_*git 43 ethereum

如何以编程方式发现以太坊区块链中给定帐户中的ETH量?

fiv*_*git 60

在网上:

(不是程序化的,但为了完整性......)如果您只想获得帐户或合同的余额,可以访问http://etherchain.orghttp://etherscan.io.

来自geth,eth,pyeth控制台:

使用Javascript API(这是geth,eth和pyeth控制台使用的),您可以使用以下内容获得帐户的余额:

web3.fromWei(eth.getBalance(eth.coinbase)); 
Run Code Online (Sandbox Code Playgroud)

"WEB3"是复仇兼容Javascript库web3.js.

"eth"实际上是"web3.eth"的简写(在geth中自动提供).所以,真的,上面应该写:

web3.fromWei(web3.eth.getBalance(web3.eth.coinbase));
Run Code Online (Sandbox Code Playgroud)

"web3.eth.coinbase"是控制台会话的默认帐户.如果您愿意,可以为它插入其他值.所有帐户余额均在以太坊开放.例如,如果您有多个帐户:

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]));
Run Code Online (Sandbox Code Playgroud)

要么

web3.fromWei(web3.eth.getBalance('0x2910543af39aba0cd09dbb2d50200b3e800a63d2'));
Run Code Online (Sandbox Code Playgroud)

编辑:这是一个方便的脚本,用于列出所有帐户的余额:

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();
Run Code Online (Sandbox Code Playgroud)

内部合同:

在内部合同中,Solidity提供了一种获得平衡的简单方法.每个地址都有一个.balance属性,它返回wei中的值.合同样本:

contract ownerbalancereturner {

    address owner;

    function ownerbalancereturner() public {
        owner = msg.sender; 
    }

    function getOwnerBalance() constant returns (uint) {
        return owner.balance;
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 我是否可以建议您列出余额的脚本可以更简单:eth.accounts.forEach(function(e,i){console.log("eth.accounts ["+ i +"]:"+ e +"\ tbalance: "+ web3.fromWei(eth.getBalance(e),"ether")+"ether")}) (2认同)