主页 > imtoken钱包怎么登录 > [知识] 以太坊中如何判断一个地址为合约账户地址
[知识] 以太坊中如何判断一个地址为合约账户地址
imtoken钱包怎么登录 2023-08-06 05:18:03
以太坊中有两种类型的账户,它们共享相同的地址空间。
外部账户地址由公钥确定,合约账户地址在创建合约时确定。
合约账户存储代码以太坊账户分为哪些类型,外部账户不存储代码,除此之外以太坊账户分为哪些类型,两类账户对于 EVM 是相同的。 每个账户都有一个键值对形式的持久化存储。 key和value的长度都是256位,名字是storage。
此外,每个账户都有一个以太币余额(以“Wei”为单位),可以通过向其发送以太币交易来更改。
如何判断一个地址的账户类型?
使用 web3.eth.getCode() 方法判断给定地址的账户是外部账户还是合约账户。 此函数返回指定地址的代码。 由于外部账户没有code,所以只会返回0x,而合约账户会返回一个以0x开头的十六进制code字符串。 例如:
var code = web3.eth.getCode("0xd5677cf67b5aa051bb40496e68ad359eb97cfbf8")
if(code === '0x') console.log('外部账户')
else console.log('合约账户')
复制
在线教程