I am testing my contract, which is for an auction. I've deployed it on the Rinkeby testnet. I have a payable function that calls
revert() if the bid being placed isn't higher than the existing bid.
To test this functionality, I placed a bid that was too low. I believe the contract did execute the
revert() because after the transaction, my balance has only decreased by the gas.
However, when I view the transaction on Etherscan, it says
Contract execution completed.
This seems misleading. My balance has not decreased, and the ETH are still in my test account. But on Etherscan I can see an outgoing transaction for the invalid bid amount.
My only theory for this is that Etherscan doesn't know what happened because I have not uploaded my solidity source code. Does anyone else have any theories?