Как получить метаданные Ethereum? admin_getContractInfo не существует

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

В geth есть функция в интерфейсе администратора getContractinfo () , но я получаю сообщение об ошибке: Метод admin_getContractInfo не существует /недоступен

В документации ( https://github.com/ethereum/go-ethereum /wiki /Контракты и транзакции ) Я видел пример, но я не думаю, что он работает:

// get the contract info for contract address to do manual verification
var info = admin.getContractInfo(address) // lookup, fetch, decode
var source = info.source;
var abiDef = info.abiDefinition
5 голосов | спросил dragosb 18 J000000Monday16 2016, 16:48:40

2 ответа


3

Для байт-кода вы можете использовать web3.eth.getCode(address).

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


admin.getContractInfo кажется удален . (Обратите внимание, что для использования getContractInfo, более ранние шаги https://github.com/ethereum/go-ethereum/wiki/Contracts-and-Transactions#contract-info-metadata включая saveInfo).

ответил eth 19 J000000Tuesday16 2016, 01:37:32
1

Да, но это немного хлопот (вам нужно перепроектировать код /​​быть знакомым с байтовым кодом EVM).

Ниже приведен пример здесь с развернутый контракт здесь .

ответил Sebi 18 J000000Monday16 2016, 18:40:52

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132