как получить все smart контракты из сети avalanche

Каким образом можно получить все smart контракты из сети avalanche? Или какой либо другой based on ethereum.


Ответы (1 шт):

Автор решения: Mad Jackal

Самый простой, но не самый быстрый - извлечь из сети все транзакции с нулевым адресом получателя. В поле данных (input) у них будет байт-код смарт-контракта. В квитанции на такую транзакцию (eth_getTransactionReceipt) будет адрес созданного смарт-контракта. Теоретически он может оказаться битым - чтобы это проверить, надо запросить код смарт-контракта по данному адресу (eth_getCode). Байт-код в транзакции создания смарт-контракта и полученный через eth_getCode будут РАЗНЫЕ - если вы захотите склонировать смарт-контракт - надо брать код из транзакции. Ну и кроме собственно байт-кода в транзакции могут (после него) идти значения параметров консруктора, если они есть.

Не знаю, как это на питоне, поэтому вызовы приложил для json RPC.

→ Ссылка