【发布时间】:2020-04-02 06:25:16
【问题描述】:
我有两个合约,主合约需要输入字节 32 数组,然后主合约将字节 32 转换为地址、uint 256 和字节并调用第二个合约,这需要输入地址、uint 256 和字节
我正在尝试将此字节数据转换为字节 32
“0x793e39cd00000000000000000000000064a436ae831c1672ae81f674cab8b6775df3475c0000000000000000000000004a6bc4e803c62081ffebcc8d227b5a87a58f1f8f000000000000000000000000c4375b7de8af5a38a93548eb8453a498222c4ff20000000000000000000000000000000000000000000000001b9de674df070000” P>
但是当我将这些数据从 bytes32 转换回字节时,我得到了这个
“0x793e39cd00000000000000000000000064a436ae831c1672ae81f674cab8b677”
为了将 bytes32 转换为我使用的字节
abi.encodePacked()
为了将字节转换为字节 32,我找到了这段代码,但这不正确。
function bytesToBytes32(bytes memory source) private pure returns (bytes32 result) {
if (source.length == 0) {
return 0x0;
}
assembly {
result := mload(add(source, 32))
}
}
【问题讨论】:
标签: solidity