Вы понимаете адрес контракта, определенный адресом создателя сообщения, и одноразовый номер является правильным.Однако в приведенном вами примере msg.sender
является адресом договора Test
.
Произошли следующие шаги:
- Вы инициировали транзакцию для развертывания
Test
с вашего внешнего аккаунта (0x98081ce968e5643c15de9c024de96b18be8e5ace
).Согласно информации о транзакции, одноразовый номер учетной записи на тот момент был 639. - В результате контракт
Test
имел адрес 0xcb7d7e99e56406a675173f0ddbde7d8cc3392e5e
. - Во время развертывания
Test
, конструктор затем создает два новых контракта через «внутренние транзакции».Divert
развертывается с адреса контракта по адресу 0xcb7d7e99e56406a675173f0ddbde7d8cc3392e5e
с nonce=1
.OverRide
развертывается с того же адреса с nonce=2
.
Вы можете просмотреть детали внутренней транзакции здесь .