Вам нужно опубликовать ABI контракта и обратиться к другим для взаимодействия с контрактом?

Предположим, вы пишете контракт, с которым хотите, чтобы другие взаимодействовали. Насколько я понимаю, если вы хотите, чтобы другие взаимодействовали с вашим контрактом, вам необходимо предоставить ABI контракта и адрес. Это правильно?

Если да, то не могли бы вы опубликовать ABI контракта и указать адрес в определенном месте для использования людьми, чтобы они могли с ним взаимодействовать? Не могли бы вы опубликовать код, чтобы люди могли составить контракт и получить ABI?

ИЛИ , можно ли взаимодействовать с контрактом, просто зная его адрес/хэш.

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

Ответы (1)

Да, чтобы люди могли взаимодействовать с вашим контрактом, вам нужно опубликовать ABI и адрес контракта.

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

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

Как вы проверяете, что контракт действительно был создан с данным исходным кодом? Насколько я знаю, ABI содержит только методы, их входы и выходы и определенные события. Таким образом, даже если ABI совпадает, могут быть изменения в том, что на самом деле делают методы, верно? Есть ли способ проверить, что происходит внутри методов?
@Max: Вы правы, ABI ограничен, но с исходным кодом вы можете скомпилировать его и сравнить с блокчейном, как на ethereum.stackexchange.com/questions/195/…