Разница между тем, как вызываются методы в смарт-контракте

В чем разница между

 instance.totalSupply() vs instance.methods.totalSupply().call()

Насколько мне известно, один для трюфелей, а другой для web3. Но трюфель также использует web3, тогда почему я не могу вызывать функции одним способом?

Ответы (1)

Начиная с версии 1.0 web3.js рекомендуется вызывать функции смарт-контракта следующим образом.

instance.methods.totalSupply().call()

Ссылка: методы

Для более ранней версии (<1.0) мы могли бы вызвать как

instance.totalSupply() 

Примечание: из документов

Эта документация находится в стадии разработки, и web3.js 1.0 еще не выпущен! Вы можете найти текущую документацию для web3 0.xx на github.com/ethereum/wiki/wiki/JavaScript-API.

какую версию web3 использует трюфель?
Я не уверен. ты можешь это проверить
чтобы проверить версию, используйте web3.version в консоли трюфеля (или в разработке) @sharif2008. Я прочитал документ, но не могу найти, где говорится, что это рекомендуемый подход; может это просто альтернатива?