错误一:
TypeError: “send” and “transfer” are only available for objects of type “address payable”, not “address”.
参考网址
解决方法:这个写法在之前版本没有什么问题,但是在 Solidity 0.8之后,address就不是默认payable类型了。所以要在address前面加上payable的强制类型转换
eg:payable(msg.sender).transfer(msg.value * 2);
错误二:
TypeError: Data location must be “memory” for parameter in function,
but none was given.
参考网址
解决方法:原来是新版本要求必须强制指定所有变量的数据位置。string 后必须加上memory。
eg: function changeName(string newName) public { Myame = newName; } 改为 function changeName(string memory newName ) public { Myame = newName;}