Интеллектуальный аудит контактов с использованием JS, проблема с типом данных uint8 - PullRequest
1 голос
/ 12 марта 2019

Я пытаюсь проверить созданный контакт на предмет переполнения, в переменной кода солидности desiredDecimals есть uint8

JS тесты:

Когда я прохожу2 ^ 8 в .js

it("fail test overflow desiredDecimals uint8 contract creating", async function() {
    let desiredDecimals = 2**8
    let token = await Token.new("Test token", desiredDecimals);
})

ошибка отсутствует, и контакт создан, desiredDecimals = 0

Тесты твердости:

Записьтот же тест на Solidity,

function desiredDecimalsOverflow() public {
    uint8 desiredDecimals = 2**8;
    new Token("Test token", desiredDecimals);
}

контакт не был создан, и тесты не пройдены, что является правильным.

Я полагаю, что возникает некоторая проблема с типами данных между js и Solidity, но я не могу раскрыть точную проблему.

...