这篇文章主要介绍“如何判断以太坊地址是不是智能合约”,在日常操作中,相信很多人在如何判断以太坊地址是不是智能合约问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何判断以太坊地址是不是智能合约”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
web3.eth.getCode()方法返回指定地址上代码的16进制字符串,由于普通账户地址处没有代码,因此将仅返回16进制前缀0x
。利用这个我们可以进行判断,例如:
var code = web3.eth.getCode("0xbfb2e296d9cf3e593e79981235aed29ab9984c0f") if(code === '0x') console.log('普通账户') else console.log('合约账户')
在合约内,可以使用EVM汇编代码来获取指定地址处的代码大小,显然,普通账户地址将返回0
:
contract EzDemo { function isContract(address addr) returns (bool) { uint size; assembly { size := extcodesize(addr) } return size > 0; } }
到此,关于“如何判断以太坊地址是不是智能合约”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。