我正在处理zk-proofs,但是我的验证码返回一个错误,如标题所示。
我对这种情况一无所知,有人知道吗?
这是我的固体功能代码
function stringToUint256(string memory s) internal pure
returns (uint256, bool) {
bool hasError = false;
bytes memory b = bytes(s);
uint256 result = 0;
uint256 oldResult = 0;
for (uint i = 0; i < b.length; i++) { // c = b[i] was not needed
if (b[i] >= 48 && b[i] <= 57) {
// store old value so we can check for overflows
oldResult = result;
result = result * 10 + (uint256(bytes(b[i]) - 48) ;
// prevent overflows
if(oldResult > result ) {
// we can only get here if the result overflowed and is smaller than last stored value
hasError = true;
}
} else {
hasError = true;
}
}
return (result, hasError);
}
答案 0 :(得分:1)
我对稳定性并不熟悉,但是仅看代码,我认为您在以下行中缺少括号:
结果=结果* 10 +(uint256(bytes(b [i])-48);
(uint ...)部分周围的括号不完整。这可能是导致语法错误的原因;该程序在右括号之前不需要分号。