智能合约中计算namehash
- function computeNamehash(string _name) public pure returns (bytes32 namehash) {
- namehash = 0x0000000000000000000000000000000000000000000000000000000000000000;
- namehash = keccak256(
- abi.encodePacked(namehash, keccak256(abi.encodePacked('eth')))
- );
- namehash = keccak256(
- abi.encodePacked(namehash, keccak256(abi.encodePacked(_name)))
- );
- }
caA sample implementation in Python is provided below.
- def namehash(name):
- if name == '':
- return '\0' * 32
- else:
- label, _, remainder = name.partition('.')
- return sha3(namehash(remainder) + sha3(label))
var hash = namehash('www.baidu.com')
参考文档: