Как извлечь адрес реализации из клона ERC-1167
Множество коротких контрактов могут делегировать вызовы общей реализации. У стандартного минимального клона адрес назначения зашит прямо в исполняемый байткод.
Разберите каноническую последовательность
Прочитайте развёрнутый код методом eth_getCode. В каноническом 45-байтовом коде ERC-1167 между приведёнными префиксом и суффиксом находится ровно 20 байт адреса реализации.
363d3d373d3d3d363d73
<20 bytes>
5af43d82803e903d91602b57fd5bf3
Извлеките средние байты и запросите код по полученному адресу на том же блоке. Образец относится к развёрнутому коду. Во входных данных транзакции создания также присутствует код инициализации, поэтому сравнение будет другим.
Читайте состояние у конкретного клона
При делегировании код реализации работает с хранилищем клона. Два клона с одинаковыми байтами могут иметь разных владельцев и балансы. Для чтения геттера вызывайте адрес клона. Несовпадение с шаблоном требует разбора: встречаются оптимизированные варианты. eips.ethereum.org EIP-1167