I think what does the method estimateGas do is to simulate the real action, it is just equal to web3.eth.sendTransaction, the only difference between them is estimateGas does not send the transaction out actually, and if your operation will fail when call a function, you can not get a valid result by estimateGas.
Hi,
Thanks for your response. How you know that the contract has 97 Ether? I actually I transferred 97 Ether from account1(acc1) yesterday and then locked my computer through out the rest of the day but today when I checked, I found that the acc1 has 99.999Ether.
Any way I am able to run estimateGas: