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.
An easier to interpret trace can be seen here at ether.camp.
What happened is that the contract tried to call another contract, specifying a gas quantity of self.gas - 34050
. Since your execution had less than that much gas remaining at the time it was called, the result was a negative number, which translates into a very large positive number in unsigned arithmetic. It then attempted to make a call with that, and the EVM threw an exception because it was attempting to spend more gas than was available.
EVM exceptions result in all gas being consumed, and the transaction being rolled back.
Best Answer
You are sending to a contract address. The gas limit 21000 in your transaction is too low. Older successful transaction have a gas limit of 90000.
You should look at Bittrex documentation, ask their support which value to use for gas limit.