Contrato asesinado dos veces

Debido a un retraso (no minutos, probablemente horas) en la minería, primero una transacción de eliminación https://testnet.etherscan.io/tx/0xf087a137e7f4962260da26928d205cabd71eed68fd79f8f35fb1027073f03812 , y minutos después un segundo reintento https://testnet.etherscan.io/tx/ 0x04658d7262ab966b6f83cce78529d02d66318e02aa59411ef1d18c1989f5f3fe (eso es 2 transacciones de eliminación del mismo contrato) el contrato se eliminó dos veces. Me pregunto si eso es congruente con los estándares de Ethereum. Si el contrato https://testnet.etherscan.io/address/0xabc7a3a72af1f94ff6029ef01bc0f7c49e2ed637 fue cancelado en primer lugar, ¿cómo es posible que el mismo contrato acepte la segunda llamada al método kill()?

En Esperando a que se extraiga la transacción, puede encontrar detalles sobre la extraña demora en testnet Ropsten al realizar estas transacciones.

Pensé ¿Puedes ejecutar un contrato dos veces en un bloque? podría arrojar algo de luz sobre este tema, pero se trata de transacciones en el mismo bloque, y no es el caso aquí, porque esos dos asesinatos pertenecen a bloques diferentes.

Respuestas (1)

Si observa los rastros de Geth VM:

https://testnet.etherscan.io/vmtrace?txhash=0xf087a137e7f4962260da26928d205cabd71eed68fd79f8f35fb1027073f03812

seguido por

https://testnet.etherscan.io/vmtrace?txhash=0x04658d7262ab966b6f83cce78529d02d66318e02aa59411ef1d18c1989f5f3fe

... ves que en realidad solo se suicidó la primera vez.

La segunda vez no hizo nada, ya que el código había sido borrado por la suicideoperación anterior.

El aspecto poco intuitivo de esto es que la segunda transacción parece "exitosa", aunque en realidad no hace nada.