Как получить ABI смарт-контракта с Nethereum?

Я могу получить доступ к службе цепочки блоков на основе кворума, и я использую библиотеку Nethereum для взаимодействия со смарт-контрактом.

Когда я развертываю новый смарт-контракт, Nethereum предоставляет адрес и ABI смарт-контракта.

Но я не могу получить доступ к ABI SmartContract без развертывания процесса. Как я могу получить ABI на основе адреса смарт-контракта?

2 ответа

Решение

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

Невозможно получить ABI JSON только из байт-кода (или адреса, содержащего только байт-код).


Если в контракте опубликован исходный код, вы можете скомпилировать исходный код, чтобы получить ABI JSON.

Если исходный код не опубликован, также возможно, что контракт реализует какой-либо стандарт (например, ERC-20). Если вы знаете, реализует ли он и какой стандарт, вы можете использовать общий ABI JSON, который отражает этот стандарт (например, это ABI JSON стандарта ERC-20). Однако он не отражает каких-либо функций, которые контракт мог бы использовать для расширения стандартного минимума.

Вы можете скопировать свой смарт-контракт в ремикс и позволить ремиксу его скомпилировать. Затем Remix показывает вам API и байт-код вашего контракта.

Другие вопросы по тегам