Как определить реализацию прокси ERC-1967 на блоке инцидента
Разбор старой транзакции по сегодняшнему коду может привести к правдоподобному, но ошибочному выводу. Прочитайте слот реализации прокси на высоте инцидента.
Прочитайте хранилище прокси
Вызовите eth_getStorageAt, передав адрес прокси, слот ниже и нужный блок. Адрес реализации занимает крайние правые 20 байт в полученном 32-байтовом слове.
0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc
Если слово заканчивается на 0000000000000000000000000000000000000042, а старшие байты нулевые, исследуйте код по адресу, заканчивающемуся на 42. Для воспроизведения вызова приложения через fallback по-прежнему обращайтесь к самому прокси.
Разберите случай с пустым слотом
Нулевое слово возможно у прокси с маяком. Тогда проверьте слот маяка ERC-1967 и вызовите у маяка implementation() на той же высоте. Другие типы прокси могут хранить реализацию иначе. Снимок на конец блока уже включает обновления, выполненные позднее в этом же блоке. eips.ethereum.org EIP-1967