Как распознать делегирование EIP-7702 по коду аккаунта

Если считать каждый адрес с непустым кодом обычным развёрнутым контрактом, можно ошибиться в классификации аккаунта с делегированием EIP-7702.

Проверьте обозначение целиком

Вызовите eth_getCode для аккаунта на исследуемом блоке. Обозначение делегирования состоит из трёх байтов маркера и 20-байтового адреса. В примере целевой адрес заканчивается на 42.

0xef01000000000000000000000000000000000000000042

Проверьте и префикс, и полную длину в 23 байта. Запросите код целевого адреса на той же высоте. При вызове делегирующего аккаунта делегированный код выполняется в контексте этого аккаунта.

Сохраните привязку к блоку

Запишите адрес аккаунта, адрес реализации и хеш блока. Впоследствии владелец может установить другое делегирование или очистить обозначение. Запрос на текущем блоке при разборе старого инцидента способен показать другую реализацию. eips.ethereum.org EIP-7702