我有一个使用bytes32参数并将其值转化为jobID变量的消耗者。
contract APIConsumer {
bytes32 public jobId;
constructor( bytes32 _jobId) {
jobId = _jobId;
}但是,当我将这个值"ec013753fda740f8bc74a966daea0723"传递给jobId变量"0x00000000000000000000000000000000ec013753fda740f8bc74a966daea0723"时,我想知道它为什么要添加这些零,以及如何修复它(让它分配在参数中传递的相同值,而不添加零)。
发布于 2023-01-27 10:33:23
这是预期的行为,该值被填充为右(=零被添加到数字的左边,以填充整个32个字节)。我不认为您真的想“修复”这个问题,但是如果您这样做了,您可以使用一个字节数组,如下所示:
bytes public jobId;
constructor( bytes memory _jobId) {
jobId = _jobId;
}https://ethereum.stackexchange.com/questions/143771
复制相似问题