以太坊如何判断帐户类型

以太坊中有两类帐户,它们共用同一个地址空间。web

  • 外部帐户,该类帐户被公钥-私钥对控制(人类)。
  • 合约帐户,该类帐户被存储在帐户中的代码控制。

外部帐户的地址是由公钥决定的,合约帐户的地址是在建立该合约时肯定的。函数

合约帐户存储了代码,外部帐户则没有,除了这点之外,这两类帐户对于EVM来讲是同样的。 每一个帐户有一个key-value形式的持久化存储。其中key和value的长度都是256比特,名字叫作storage..net

另外,每一个帐户都有一个以太币余额(单位是“Wei"),该帐户余额能够经过向它发送带有以太币的交易来改变。3d

如何判断一个地址的帐户类型?

使用web3.eth.getCode()方法能够判断一个给定的地址的帐户是外部帐户,仍是合约帐户。这个函数返回指定地址的代码,因为外部帐户没有代码,所以仅仅会返回0x,而合约帐户将会返回0x开头的16进制代码字符串。例如:code

var code = web3.eth.getCode("0xd5677cf67b5aa051bb40496e68ad359eb97cfbf8")
if(code === '0x') console.log('外部帐户')
else console.log('合约帐户')

在线教程

相关文章
相关标签/搜索