Using etherscan blockchain explorer
In etherscan, look for the TxReceipt Status
which will have Fail
in red, or Success
in green.
Example of a failure:
https://ropsten.etherscan.io/tx/0x67a5f6442f49a5da6ff8682250a8eef899d9dc0c5adf20b683709433902b5956
Using the receipt
eth.getTransactionReceipt(transactionHash)
will return a status
field that has a value of 0
when a transaction has failed and 1
when the transaction has succeeded.
Here's an example showing the status
field:
{ blockHash: '0xb1fcff633029ee18ab6482b58ff8b6e95dd7c82a954c852157152a7a6d32785e',
blockNumber: 4370000,
contractAddress: null,
cumulativeGasUsed: 21000,
gasUsed: 21000,
logs: [],
logsBloom: '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
root: null,
status: 1, // **** HERE IS THE STATUS FIELD *****
transactionHash: '0x1421a887a02301ae127bf2cd4c006116053c9dc4a255e69ea403a2d77c346cf5',
transactionIndex: 0 }
More details here.
Historical
To see if a transaction ran out of gas, you can input the transaction (hash) in https://live.ether.camp and then click on "VM Trace". (For the testnet Morden, use https://morden.ether.camp)
Or plug in the transactionHash in this url:
https://live.ether.camp/transaction/<transactionHash>/vmtrace#0
For the transaction mentioned in the question, 022f440fa96eb469363804d7b6c52321d4f409fa76578cdbdc5f04ff494b1321
here is the output
https://live.ether.camp/transaction/022f440fa96eb469363804d7b6c52321d4f409fa76578cdbdc5f04ff494b1321/vmtrace#0
This transaction was out of gas immediately. Some transactions may run out of gas after doing some computations, and clicking on the Operations will show each step being performed and when the out of gas happens.
The funds will not be returned when a transaction has insufficient gas. When a transaction is Out of Gas, the miner keeps all the gas. This is because in the general case, the miner has to actually process the transaction to determine if and when all gas is consumed. Since the miner has expended resources, it's only fair that they are paid (it's not their responsibility that not enough gas was provided for the transaction).
Transactions can be complex (see some examples from the whitepaper) that's why gas has to be specified upfront, miners can choose which transactions to process, and the miner fee is sometimes only known as part of processing the transaction.
Best Answer
The status of the transaction has
It means the whole transaction has failed and it was reversed immediately. The ether sent was returned to your account (minus ether used to pay the gas cost of the transaction).
Some intermediate operations (usually called "internal transactions") were sucessful but since the whole transaction was reversed they were also reversed, it is like they never happened.
Some wallets have problems with reversed trasaction check with your wallet support, in case of doubt use several block explorers to check your balance.