What is the correct algorithm to calculate gas limit for ether transaction with data in Ethereum?
According to Ethereum Whitepapper, in order to calculate gas limit for ether transaction with non-zero data you will need to use the following formula:
gasLimit = Gtransaction + Gtxdatanonzero * dataByteLength,
Gtransaction = 21000 Gtxdatanonzero = 68 dataByteLength — your data size in bytes
So, the final formula would look like this:
gasLimit = 21000 + 68 * dataByteLength.
If your data has 10 bytes, the gas limit would be:
gasLimit = 21000 + 68 * 10 = 21000 + 680 = 21680