2.3 列出账户和检查余额

优质
小牛编辑
131浏览
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环境,就像您手动键入命令一样。请随意试验!