Solidity中将"uint256"类型转换为"address"类型的强制类型转换

4
我想知道如何在Solidity最新版本中将uint256数据类型转换为地址。
以下是我正在开发的示例代码。
function setDetails(string memory _name) public onlyAuthCaller returns(address){
        uint256 tmpData = uint256(keccak256(abi.encodePacked(msg.sender, block.timestamp)));
        address batchNo = address(tmpData);

        detailsData.name = _name;

        batchDetails[batchNo] = detailsData;

        nextAction[batchNo] = 'NEXT';

        return batchNo;
}

在 Remix 中,我遇到了一个 TypeError:在以下行中不允许从 "uint256" 转换为 "address":address batchNo = address(tmpData); 如果有人能帮我解决这个类型转换的错误,将不胜感激。
谢谢。
1个回答

5
可能是因为 uint256 太大,需要截断处理。
来自 文档: enter image description here

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接