Как прочитать данные из смарт-контракта с помощью web3.js?

Я хочу создать что-то похожее на функцию вкладки «Чтение контракта» в etherscan , которая читает контракт и возвращает все общедоступные реквизиты, такие как: - имя, общее предложение, десятичные знаки и т. д.

Однако я не нашел никакой информации о документации web3.

Ответы (1)

Etherscan может обеспечить это только для контрактов, которые проверяют их исходный код, или для контрактов, которые следуют спецификации, такой как ERC20.

Это связано с тем, что чтение контракта (или его написание) требует знания ABI для этого контракта. Если у вас есть исходный код, вы можете его сгенерировать. Если у вас нет кода, но контракт соответствует известной спецификации, вы можете использовать ABI для этой спецификации (обратите внимание, что любые дополнительные методы, реализованные вне спецификации, в этом случае будут недоступны).

Если у вас есть ABI, это просто вопрос вызова определенных функций в контракте. Взаимодействия контрактов Web3 описаны в документации здесь .

да, у меня есть ABI, так что вы говорите, что я мог бы сделать myContract.myPropили myContract.myProp.call()понравиться, если бы я хотел получить поддержку tokenSupply myContract.tokenSuply:?
Вы должны быть в состоянии сделатьmyContract.tokenSupply.call()
Должно быть myContract.methods.tokenSupply.call()?
@SSHThis Возможно, мои соглашения web3.js самые лучшие, редко их использую