What is the correct algorithm to calculate gas limit for transaction with data in Ethereum?
Asked
Active
Viewed 2.1k times
4
-
4It's not a duplicate! The attached QA has nothing to do with arbitrary data cost estimation. – Slava Fomin II Feb 16 '18 at 14:33
1 Answers
14
According to Ethereum Yellow Paper, in order to calculate gas limit for transaction with non-zero data you will need to use the following formula:
gasLimit = Gtransaction + Gtxdatanonzero × dataByteLength
where:
Gtransaction = 21000 gas
Gtxdatanonzero = 68 gas
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
Slava Fomin II
- 307
- 1
- 2
- 10
-
-
-
1Keep in mind if you're sending to a smart contract, that smart contract's internal functions will require additional gas depending on what all they do. – Albert Renshaw Oct 13 '21 at 04:19
-
What's a reliable way to estimate the gas if we are calling a function on the smart contract? There is a
rpcProvider.estimateGas(txn)method I can use, but it will fail to estimate the gas sometimes on some complicated functions – Yao Jan 04 '23 at 19:30 -