Ethereum 这个和地址(这个)在坚固性上有什么区别
从solidity文档中,我知道Ethereum 这个和地址(这个)在坚固性上有什么区别,ethereum,solidity,web3js,Ethereum,Solidity,Web3js,从solidity文档中,我知道这是合同的地址。那么为什么遵循合同会产生错误, pragma-solidity^0.6.2 contract Sample { function getContractAddress() public view returns (address) { return this; } } 但是将这个作为地址(这个)进行类型转换。那么此的数据类型是什么 如果我想要keccak256,我应该使用keccak256(abi.encodePa
这是合同的地址。那么为什么遵循合同会产生错误,
pragma-solidity^0.6.2
contract Sample {
function getContractAddress() public view returns (address) {
return this;
}
}
但是将这个
作为地址(这个)
进行类型转换。那么此
的数据类型是什么
如果我想要keccak256,我应该使用keccak256(abi.encodePacked(this,num))//uint256 num
还是keccak256(abi.encodePacked(address(this)),num)
这样我就可以得到web3.utills.sha3(contractAddress,num)//contractAddress-address(this)
在0.5.0版本之前,Solidity允许合同实例访问地址成员,例如this.balance
。现在,这是禁止的,必须显式转换到地址:地址(This).balance
资料来源:
因此,除非您使用的是不推荐的Solidity版本(0.4.x及更高版本),否则您需要使用到地址(this)
keccak256(abi.encodePacked(address(this)), num)