从“uint256”到“地址”的 Solidity 转换

0x5*_*6FF 5 type-conversion solidity

我想知道如何将 uint256 数据类型转换为 Solidity 最新版本上的地址。

这是我正在开发的代码的示例。

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;
}
Run Code Online (Sandbox Code Playgroud)

在 Remix 上,我遇到了 TypeError: Explicit type conversion not allowed from "uint256" to "address" on line:address batchNo = address(tmpData);

如果有人可以帮助我解决转换这些数据类型的错误。

问候

MrF*_*oid 5

可能是因为 uint256 太大,需要截断。

摘自文档在此输入图像描述