[Ethereum] Can’t send ETH out from Wallet Contract

accountsmistwallets

  • OS Win7.
  • Node: Parity 1.3.3
  • Client: Ethereum wallet & Mist (on 2 different PC's)

Contract owner account is fully funded with >5 ETH (well enough to cover tx fees/ gas)
*wallet contract contains >1 ETH fwiw.

I have never had this problem before, but after switching to parity (due to DOS attacks) I decided to place a few transactions to test that everything worked properly.

First I sent a small amount of ETH from account1 to account2, works fine.

Then I sent a small amount from account1 to my wallet contract, works fine.

Finally, I attempted (multiple times) to send from the wallet contract back to account1 and also tried sending to account2. Ethereum Wallet shows transaction as confirmed and show "-1.18 ETHER" in transaction history for a short time, but then disappears from history, (in mist, the transaction is still visible) But the receiving account and wallet contract's balances show no change.

Screenshots below show gas consumed but show value transferred as "0". I have tried several times from 2 different pc's and have burned gas after gas but can't move the ether out of the contract.

Viewing the contract address on etherscan shows the multiple transactions that I have tried, but the value of each transaction is "0 Ether". ETH balance is >1.

Just to test the function I also wrote to contract add owner and was successful in adding a 2nd owner to the contract. The contract was created using ethererum wallet Add wallet contract – (Single owner account) option.

Any help would greatly be appreciated.

EDIT: I used the Kill function to remove the ether from the contract. Unfortunately, the contract is now useless (as it has no owners). I tried to make a new contract, but got an error that it exceeds block gas limit (estimated 2 Million gas, 3 million maximum.)
enter image description here

enter image description here

enter image description here

Best Answer

Usually the ether amount stored in the contract can be received after executing the suicide option (which flushes the balance of the contract sending everything to the contract's owner address). After that stage the contract becomes inactive (and any ether sent to its address is lost - gets burned), so the contract stops executing the functions coded inside it.

This option of course might be coded inside the contract since its creation because the contract, once created, cannot be modified in the blockchain. Once you kill a contract no gas will be used if you send a payment to its address (as functions inside it are not executed) however if you still see earlier pending transactions (which is highly unlikely) it means that the transactions were not yet mined because of too low gas being provided.

This reminds me of certain situation explained by someone earlier. It is when one tries to send a transaction (with too low gas fee) but because the network doesn't confirm it in a short time (it gets queued) the user tries again and again (testing with various gas fees included). At a certain moment, one transaction is accepted, the balance decreases with the corresponding amount, so everything seems perfect and the user is happy and stops trying to send again. However, if at some moment he funds again his address, it is possible that one pending transaction to be eventually accepted (mined) and the user see again the same amount disappearing from its address (like unexpected double spending). I say it again, such thing is unlikely to happen (I did not experienced myself nor I would want to happen to me) so I just describe it in theory. However, if you think you can check the pending transactions from your account you could link that with such a situation.

Related Topic