2.3 列出账户和检查余额
优质
小牛编辑
128浏览
2023-12-01
列出账户和检查余额
列出你现有的账户
在命令行输入:
$ geth account list
Account #0: {d1ade25ccd3d550a7eb532ac759cac7be09c2719}
Account #1: {da65665fc30803cb1fb7e6d86691e20b1826dee0}
Account #2: {e470b1a7d2c9c5c6f03bbaa8fa20db6d404a0c32}
Account #3: {f4dd5c3794f1fd0cdc0327a83aa472609c806e99}
会列出你所创建的所有账户
注意: 假如你从其他的节点拷贝密钥文件过来,这个顺序会发生改变。所以您确保不依靠索引,或确保您复制了您在脚本中检查和更新帐户索引的密钥。
使用控制台:
> eth.accounts
['0x407d73d8a49eeb85d32cf465507dd71d507100c1']
或者使用RPC:
# Request
$ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_accounts","params":[],"id":1} http://127.0.0.1:8545'
# Result
{
"id":1,
"jsonrpc": "2.0",
"result": ["0x407d73d8a49eeb85d32cf465507dd71d507100c1"]
}
如果您想以非交互方式使用帐户,则需要解除锁定。您可以在命令行上执行此操作,该--unlock
选项将空白分隔的帐户列表(十六进制或索引)作为参数,以便您可以以一种会话方式解锁帐户。如果您想通过RPC从Dapps使用您的帐户,这是非常有用的。--unlock
将解锁第一个帐户。当您以编程方式创建帐户时,您不需要知道实际的帐户来解锁它,这是非常有用的.
解锁一个帐户:
geth --password <(echo this is not secret!) account new
geth --password <(echo this is not secret!) --unlock primary --rpccorsdomain localhost --verbosity 6 2>> geth.log
您可以使用整数索引替代帐户地址,它指的是帐户列表中的地址位置(并且对应于创建顺序)。
命令行允许您解锁多个帐户。在这种情况下,解锁的参数是空白分隔的帐户地址或索引列表。
geth --unlock "0x407d73d8a49eeb85d32cf465507dd71d507100c1 0 5 e470b1a7d2c9c5c6f03bbaa8fa20db6d404a0c32"
如果使用这种非交互式结构,您的密码文件将需要包含相关帐户的相应密码,每行一个。
您也可以在控制台上解锁帐户(一次一个)
personal.unlockAccount(address, "password")
Note that we do NOT recommend using the password argument here, since the console history is logged, so you may compromise your account. You have been warned.
注意: 我们 不建议 在这儿使用密码作为参数,,因为Console会保存历史记录,这样会危及你的账户,这点我们已经警告过了。
检查账户余额
检查你以太坊的账户余额:
> web3.fromWei(eth.getBalance(eth.coinbase), "ether")
6.5
使用JavaScript方法打印所有的余额:
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();
eth.accounts[0]: 0xd1ade25ccd3d550a7eb532ac759cac7be09c2719 balance: 63.11848 ether
eth.accounts[1]: 0xda65665fc30803cb1fb7e6d86691e20b1826dee0 balance: 0 ether
eth.accounts[2]: 0xe470b1a7d2c9c5c6f03bbaa8fa20db6d404a0c32 balance: 1 ether
eth.accounts[3]: 0xf4dd5c3794f1fd0cdc0327a83aa472609c806e99 balance: 6 ether
由于这个功能在geth重启后会消失,把常用的方法记录下来以便以后调用。loadScript使得这样做很容易。
首先把checkAllBalances()保存至电脑上的一个文件中。例如: /Users/username/gethload.js
。接着从交互式控制台上导入文件:
loadScript("/Users/username/gethload.js") true
该文件将修改您的JavaScript环境,就像您手动键入命令一样。请随意试验!