After selfdestruct call was made, all the balance was transferred to the deployer of the contract. Why are withdraw requests still being processed?

  • Interesting find. Good question! – Thorkil Værge Apr 26 '18 at 20:48

Note: After the Constantinople fork, a new opcode CREATE2 allows to redeploy a previously seldestructed contract. So the assertion that funds remains locked foreverd doesn't apply in that case.

Previous answer follows:

After a contract calls selfdestruct, the code and storage associated with the contract are removed from the Ethereum's World State.

Transactions after that point will behave as if the address were an externally owned account, i.e. transaction will be accepted, no processing will be done, and the transaction status will be success.

Transactions will do nothing, but you still have to pay the transaction fee. You can even transfer ether. It will be locked forever or until someone finds one of the private keys associated with that address.

  • 2
    For anyone wondering if contracts actually do receive funds after they self-destruct, they do. The last transaction on that contract was to verify this answer. – Vignesh Karthikeyan Apr 27 '18 at 15:06
  • 1
    Actually, nowadays it is possible in some cases to resurrect selfdestructed smart contract, even with different byte: ropsten.etherscan.io/address/… – Mikhail Vladimirov Oct 11 '19 at 11:44
  • @MikhailVladimirov You are correct. The answer predates CREATE2 opcode that allow redeploy into an existing address. I'll add a note to reflect the new behavior. – Ismael Oct 11 '19 at 13:43
  • 1
    @VigneshKarthikeyan I understand your concern, it is an issue that was already discussed. It was already possible for a contract to change its behavior after deployment using DELEGATECALL opcode if you deploy a new library. – Ismael Oct 16 '19 at 15:44
  • 1
    @VigneshKarthikeyan It was discussed previously on several places like ethereum-magicians.org/t/… or reddit.com/r/ethereum/comments/aosaly/…. I think it is a bit too late to complain since it has been more than 6 months since it was deployed to mainnet. You can raise your concerns in the social media to alert other Ethereum users. – Ismael Oct 16 '19 at 17:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.