Как я могу получить доступ к адресу контракта в децентрализованном приложении?

Я начал работать из поля для дождя и могу получить доступ к функциям в рамках контрактов, но если я хочу дать разрешение на адрес контракта, чтобы он мог использовать токены пользователей, как я могу указать правильный адрес? drizzleOptions содержит контракты, которые имеют адреса для каждой сети, но я не думаю, что смогу выяснить, какая сеть является текущей без экземпляра web3, должен же быть простой способ получить адрес контракта в текущей сети?

Ответы (2)

вам нужно будет получить доступ к объекту контекста мороси в компоненте реакции. Я предполагаю, что вы работаете над компонентом Home.js.

Например:

this.drizzle = context.drizzle

в конструкторе компонента и см. https://github.com/trufflesuite/drizzle-react/issues/22 ,

Как только у вас это заработает,

this.drizzle.contracts.TutorialToken.addressили эквивалентно

context.drizzle.contracts.TutorialToken.addressдолжен вернуть адрес сети, однако, поскольку я не эксперт в реагировании, может быть лучший подход.

Адрес является частью API-интерфейса контракта, который загружается вместе с параметром «дождь».

Итак, когда вы просто console.log(drizzle)есть решение. Вы можете просмотреть адрес прямо в своем браузере Chrom, открыв инструменты разработчика -> консоль.

Предположим, ваше контактное имя SimpleToken, тогда

drizzle.contracts.SimpleToken.address содержит адрес контракта

перед использованием убедитесь, что drizzle.contracts.SimpleToken.address синхронизирован. В противном случае вы получите неопределенное значение в качестве возвращаемого значения или жирную красную ошибку на хромированной консоли.

Надеюсь это поможет