Mismo contrato creado dos veces (0xfec94608dea1f3609e4a93e56e01477d8a86de46)

Mientras navegaba por los rastros generados por la paridad, encontré un caso interesante:

El contrato 0xfec94608dea1f3609e4a93e56e01477d8a86de46se ha creado dos veces.

Primera vez, en la transacción: 0xc0d8d11c5da64e025ac0bb0cc286ede65c2a0b7afeeb455f04d6479cc98edb7a. La transacción falló Out of gaspero el contrato se creó con éxito.

Segunda vez, se ha creado el mismo contrato con el mismo código en la transacción: 0x9c3ef34611bd24e254b2b6f339e2f196a57042e8261c069af944248d982c67b4.

Por lo que entiendo, el contrato obtuvo la misma dirección porque se creó dentro de otro contrato. La dirección del contrato se genera a partir de la dirección del contrato del creador y su nonce. Dado que la transacción anterior del contrato del creador terminó con Out of gasel nonce no aumentado y, por lo tanto, con la misma dirección del contrato.

¿Lo que realmente sucedió? ¿Se creó realmente el contrato en la primera transacción? ¿No debería revertirse? ¿ EtherscanLo muestra correctamente? ¿Qué pasaría si en la segunda transacción se genera el contrato con un código diferente?

EDITAR: Informé el problema a los problemas de Parity GitHub

¿Sabes qué token es o dónde encontrar su código de contrato?
@RomanFrolov a la sección de comentarios en el contrato del creador dice que es un archivo Namebazaar contract creator. Fuente disponible aquí: github.com/district0x/name-bazaar/tree/master/resources/public/…

Respuestas (1)

Creo que tiene razón sobre el nonce y Etherscan afirma incorrectamente que B se creó dos veces, solo la segunda es válida.

En la primera transacción (bloque 4930939), el contrato A crea un nuevo contrato B. Pero la transacción se quedó sin gas y se llama revertir, deshaciendo la creación de B y el incremento del nonce de A.

La segunda transacción (bloque 4932566) el contrato A crea nuevamente B, la transacción se completa. Y de este bloque existe el contrato B.

Gracias. Me puse en contacto con Etherscan y pedí una aclaración.