Я работаю над zk-доказательствами, но мой код солидности возвратил ошибку, как следует из названия.
Я понятия не имею об этой ситуации, у кого-нибудь есть идеи?
это мой код функции солидности
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);
}