Приведенный ниже код не может оценить gasLimit по метамаске, транзакция принудительной отправки также не удалась.
function calc(uint256 _boughtTokenAmount) private returns (uint256) {
/* uint256 _circle = safeSub(now, startTime) % circleSecs; */
uint256 _circle = 2;
if(_circle == 0){
return _boughtTokenAmount;
}else{
uint256 _d = safeMul(100 , safeSub(lastCircle, 1));
uint256 _n = safeSub(_d, safeMul(safeSub(_circle, 1), safeSub(attenuationCoefficient0 ,attenuationCoefficient)));
uint256 _ret = safeMul(_boughtTokenAmount, _n);
testRet = _ret;
_ret = _ret/_d;
testRet1 = _ret;
return uint(_ret);
}
}
Если изменить последнюю строку 'return uint (_ret)' на 'return _boughtTokenAmount', этот код сработает, и переменная '_d', '_n', 'testRet1' получит ожидаемое значение.
Так что мой вопрос, как вернуть переменную '_ret'.
Спасибо.