[Ethereum] Why is an account not accepting the Ether sent to it

ethergasout-of-gastransactions

If you check out the account 0xe358b3b9f29c67cb810c5184e6fde27d66ce036c you will see several incoming transactions with 100 Finney each. Yet the overall balance is 31 Finney. How is that possible?

If I imagined this were my account, and I were just confirming transactions with a block explorer, how could I figure out whether a transaction is really funding my account? Where did the 100 Finney go and why?

Best Answer

If you look at the VM trace, you can see that the 100 Finney transactions ran into Out-of-Gas exceptions. In the case of an exception, all value included in the transaction is returned to the sender.

To answer the second part of your question, I would use http://live.ether.camp as your block explorer, since it shows contract-produced transactions and errors.

To be clear, while contracts cannot initiate transactions, they can send ether to other addresses. Since these operations are not separate transactions but side-effects of the contract's execution, they are often not listed with the other transactions, creating confusion.

On the ether.camp explorer, these balance transfers are listed as "internal transactions", underneath the transaction that produced them. ether.camp internal transaction

On the etherchain explorer, they are listed as "contract invoked transactions", directly underneath the contract that initiated them. It is less clear that these are part of the transaction above, but if you click the parent transaction has, you will see "invoked" transactions listed etherchain contract initiated transaction