1

Does the size of a state variable in a smart contract's storage impact the cost of a transaction, even if the variable is not accessed by the executed method? And if it does, to what extend?

For example, in this contract, there's a variable numbers.

contract Example {

   uint[] public numbers;

   function randomOperation() public view returns(uint) {
      return 2 + 2;
   }

}

Let's assume that variable contains a very large number of entries, will the cost of randomOperation() be affected by that? Also, if I do modify numbers (adding an entry), will the number of entries affect the transaction cost?

2 Answers 2

0

The reads and writes are deterministic and of constant complexity for the same Data Element Type and Data Element Size, the current size (amount of elements) of an array or a mapping has no impact.

2
  • If said array has a dynamic size, and a huge amount of entries, would that impact the cost of a write or read? Mar 1 at 12:44
  • Exactly, no matter how many entries are in the array or mapping, the reads and writes by index or by key will cost the same
    – tenbits
    Mar 1 at 18:29
0

State variables are stored directly on the blockchain so they can impact the transaction cost if modification of that state variable is being done in that transaction.

As in your scenario, the transaction doesn't involve modification in the state variable of the contract, therefor the transaction fees won't be affected.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.