step1: I create a smart contract call transaction TX and send it to ethereum.
step2: The TX is validated and broadcast to other nodes.
step3: Evm execute the TX failed(maybe because solidity function return err, and so on).
step4: Someone else changed the contract state, my previous TX is valid now.
My question is , if I resend the TX now, would it be executed or discarded as a
duplicate transaction?
If ethereum does not do duplicate check, one transaction may cycle in p2p network?