Трюфель CMD Bignumber для номера; hex-string

Функция в моем контракте при вызове командной строки трюфеля дает результат в формате BigNumber. Вот что я написал в командной строке:

instance = contract.at('deployed address')

instance.getAge()

Я попробовал instance.getAge (). toNumber (), но это порождает ошибку, говорящую, что toNumber не определен. Я проверил Как преобразовать BigNumber в число в рамках трюфеля? однако это не работает в командной строке.

Симлерные выходы из функций, возвращающих байты32, находятся в шестнадцатеричном формате. Я проверил web3 return bytes32 string но web3.utils.toAscii(x) {x is any variable} выдает ошибку

  

"Невозможно прочитать свойство toAscii неопределенного"

Я прочитал стек, связанный с этим, и это также не помогло.

3 голоса | спросил Rahul Kothari 17 Jpm1000000pmWed, 17 Jan 2018 23:42:58 +030018 2018, 23:42:58

1 ответ


2

Контрактные вызовы функций в Truffle return обещания , поэтому вам нужно добавить обратный вызов, чтобы получить ответ. Если getAge() объявлен как constant, pure или view в контракте Solidity вы можете сделать instance.getAge().then(age => age.toNumber()), если у него нет ни одного из этих модификаторов, тогда вам нужно сделать instance.getAge.call().then(age => age.toNumber())

ответил willjgriff 18 Jam1000000amThu, 18 Jan 2018 01:54:07 +030018 2018, 01:54:07

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132