I am writing a very simple contract that does the following:

  • accepts ETH
  • allows the transfer of ownerships
  • logs events
  • suicides when goal is met

I tested it successfully with a regular account and I do see the ETH transfer to the current account owner.

The steps I have tested are as follows:

  1. Creator creates contract - creator becomes owner by default in the constructor
  2. I transfer ownership to another account
  3. The new owner suicides the smart contract when goal is met (1 ETH in Kovan testing environment)

When I transfer ownership between regular accounts and then suicide, it works fine.

When I transfer ownership to a multi-sig wallet (3 approvers required minimum) and then suicide it, it never sends the ETH to the multi-sig address.

Does it have anything to do with the fact that the multi-sig needs 3 approvers.

Any advice on how best to approach this?

  • 2
    It's hard to guess the problem without seeing the code. – user19510 Jan 10 '18 at 17:28
  • @smarx - what's the best wast to post the code? Any suggestions? – wardsback Jan 10 '18 at 19:55
  • function changeOwner (address _newOwner) onlyOwner returns (bool) { require(msg.sender == owner); owner = _newOwner; ChangedOwner(_newOwner); return true; } function endPreCrowsdale() payable onlyOwner returns (bool) { // This ends the contract and send all the funds to the multi-sig wallet suicide(owner); // Log an even that the contract is ended/suicided and the initiator address endOfPreCrowsdale(msg.sender); return true; } – wardsback Jan 10 '18 at 20:08
  • That code looks fine. What indication do you have that the suicide didn't work properly? Was this on a public network? If so, can you point us to the transaction? – user19510 Jan 10 '18 at 20:20

Your Answer

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

Browse other questions tagged or ask your own question.