Questions tagged [state-variable]

The tag has no usage guidance.

Filter by
Sorted by
Tagged with
16
votes
1answer
5k views

What is the immutable keyword in Solidity?

What is the immutable keyword in Solidity and how do I use it?
13
votes
2answers
10k views

Local variable and state variable, and the difference between them

I am new to solidity. When I read the solidity documentation, it says local variable and state variable. But I can't find the definition of the two terms. Can anyone explain the meaning of local ...
7
votes
3answers
4k views

How to get the cost (in gas) of the non-constant function call?

In my understanding, there are some situations, where the compiler can't calculate, how much Gas it takes to complete the function call. The most obvious example - when your function is calling some ...
5
votes
1answer
3k views

What does "_" mean before a variable name?

I'm a beginner, just recently started reading the docs for Solidity. I can't seem to find this anywhere on google. What does the underscore mean when placed with the indexed keyword? Examples: _from ...
5
votes
2answers
402 views

How to call a method after a specific tx in a block

With web3, it is possible to call a method of a smart contract at a specific block : myContract.methods.methodName().call(transactionObject, blockNumber, callback) Is there a way to call it after a ...
5
votes
1answer
472 views

What are 'payable' state variables?

https://solidity.readthedocs.io/en/latest/solidity-by-example.html#simple-open-auction pragma solidity ^0.4.22; contract SimpleAuction { address payable public beneficiary; What exactly does ...
4
votes
1answer
1k views

How State variable are stored and updated?

The Smart contract and the state variables are stored in the blockchain, let us say during deployment of a smart contract the state variable and smart contracts are stored in the block 1, and in ...
4
votes
2answers
783 views

Local storage variable

I am reading the solidity docs here and I seem to be struggling to understand the following. Data locations are important because they change how assignments behave: assignments between ...
4
votes
2answers
678 views

Why is an 'UNPREDICTABLE_GAS_LIMIT' error thrown when calling a view function created from a public variable?

I am using the Hardhat console to test my smart contract, which worked flawlessly until I removed the getter functions I wrote for my public state variables in favor of the automatically generated ...
3
votes
2answers
2k views

Why is uint so popular

Among every tutorial/real world example I have yet to come across anyone using the int datatype, I almost thought there wasn't one existing.. Is there a specific reason for uint's uncontested ...
3
votes
2answers
3k views

How do I see the value of a string stored in a private variable? [duplicate]

I have read many times that sensitive data should never be stored in a transaction, but, specifically, how would the value of a state variable be read if marked private?
3
votes
1answer
1k views

Why public variables aren't able to implement interface functions?

I'm curious why interfaces don't accept public variables as implementations, since public variables have getter functions generated for them. For example why couldn't the ERC20 balanceOf interface ...
3
votes
4answers
730 views

Conceptualizing smart contract variables

I'm having trouble figuring out how variables are stored on the block chain. How can a smart contract be immutable and have global variables that can change? Just say I a simple contract like below......
3
votes
2answers
134 views

Is Solidity creating an implicit getter for a nested contract that is created?

Is Solidity creating an implicit getter or not for a nested contract that is created? Example: contract Foo { .... } contract Bar { Foo public foo; Bar() { foo = new Foo(); } ...
2
votes
2answers
676 views

Getter function for public variables

Many token contracts have unrestricted getter functions for state variables, which seems redundant (eg, see OpenZepplin's ERC20 contract). For example, a contract could have it this way: uint private ...
2
votes
2answers
610 views

state variable value not changing

I have very simple solidity code as below - pragma solidity ^0.5.6; contract SaveData { uint public salary; function setSalary(uint input) public { salary=input; } function ...
2
votes
1answer
346 views

local var inside a function modifies another state variable

I have this very simple contract: pragma solidity ^0.4.18; contract C{ uint public a = 9; uint[] public data; function f(uint _a) public{ a = _a; uint[] y; ...
2
votes
1answer
180 views

Gas cost of setting a state-variable to the same value

According to this spec, setting a state-variable to the same value consumes 200 gas. However, I conducted a test over ganache-core v2.10.2, and the result was closer to 800 gas: Solidity Contract: ...
2
votes
1answer
21 views

Difference in cost between external contract as state variable vs. instantiation of contract?

For pragma solidity ^0.6.0; interface ExternalContract { function initialize() external; } contract Test { ExternalContract c; constructor(address externalContractAddress) public { ...
2
votes
1answer
2k views

Member "push" not found or not visible after argument-dependent lookup in address[] storage ref

I am failing to use the push method against a dynamic array declared as a state variable. How can I do this? I declare a dynamic array of addresses as a state variable like below: contract Sample { ...
2
votes
1answer
58 views

defining storage literals in Solidity

I am trying to write unit tests on functions that take in a storage reference as parameters. There is not much great documentation around how to create literals for these types. These include: address ...
1
vote
1answer
82 views

Does a storage array have a unique address on the block-chain?

The question in the title is a little vague, so I will try to explain here. Suppose I have a contract with a storage array: pragma solidity 0.4.24; contract MyContract { uint256[10] public ...
1
vote
1answer
217 views

Are constant state variables cached in the EVM?

From the docs: constant for state variables: Disallows assignment (except initialisation), does not occupy storage slot. Does this mean that the EVM caches constants across all contracts using ...
1
vote
2answers
267 views

Abi to call value

how to calculate ABI to call some variable in contract? for example contract X { uint data; function Y(uint a) {} } How to calculate signature to call variable "data" ? I know to call ...
1
vote
1answer
93 views

Where is the proper place to assign variables in Solidity?

uint x = 6; uint y; constructor(uint _y) { y = _y; } If the value of x is known beforehand, is it better to assign its value when it is declared or use the constructor (as with y)? The docs ...
1
vote
1answer
133 views

State Variables: What are they and how to create them?

I am new to ethereum and Solidity. I thought state variables are supposed to retain their value between calls. In the Solidity documentation, in the section State Variables, it says that state ...
1
vote
1answer
117 views

Why OpenZepplin always use private visibility for state variables?

Why OpenZepplin always use private visibility with getter functions for its state variables? I can't find a reason why they are not using public, is there any potential security or gas cost difference ...
1
vote
1answer
144 views

Why standard tokens manually create getters for balanceOf and totalSupply [duplicate]

I've been reading through different implementations of ERC20 tokens and I noticed that many of them define balanceOf[address] as balances[address] and then create a public getter() to match the ...
1
vote
1answer
184 views

Why would data be passed into a contract constructor rather than just hardcoding it, which would be less costly?

Doesn't it cost more to pass in variable assignment via a constructor due to changing state? Wouldn't it be cheaper to just assign them in the code? I am wondering if there are advantages to using ...
1
vote
2answers
378 views

Not able to read data from smart contracts

I am doing PoC on Ethereum using Azure Ethereum network and Web3. I was working from last 1 month and I have created one smart contract for student management and that was working like fab. But for ...
1
vote
1answer
41 views

Shadowing Inherited State Variables

I was editing and trying out the code from https://solidity-by-example.org/shadowing-inherited-state-variables and got the following output. pragma solidity >=0.8.0 <0.9.0; //SPDX-License-...
1
vote
1answer
105 views

How to find value of non-public state variable

I understand that public state variables automatically creates a getter function when deployed, its value can be accessed via the getter function. However, if a state variable is not public, how can ...
1
vote
2answers
378 views

Accessing private variables using assembly

I would like program an oracle service which I would like to charge a fee for. Therefore, I would store the data of interest as a private variable in my oracle contract. This private variable should ...
1
vote
1answer
1k views

Why do some variables' names end in underscore?

On Open Zeppelin's ERC20 BasicToken contract the variable totalSupply_ follows a naming convention I haven't seen before. Is that to differentiate it from the function totalSupply() below or is there ...
1
vote
1answer
37 views

What is the length of an empty fixed sized array?

Let's say we initialize a state variable as: uint[10] public fixed_array; This is a fixed sized array which is currently empty. What would fixed_array.length return? 0 or 10?
1
vote
1answer
583 views

Access previous state

Let's say I have a uint public myvar in my contract that is initialized to some value. Then, myvar gets set to 3 in the next block. How can I retrieve the old value? Is this possible with web3? ...
1
vote
0answers
28 views

Read smart contract data from blockchain itself

I'm trying to figure out if it's possible to read smart contract data from the blockchain itself. I know in ordinary circumstances, smart contracts sit on top of the chain in the ledger. I'd like to ...
1
vote
1answer
318 views

How to protect your state variables from getting modified?

from what I understood, any state variables that are not private can be called and modified by any contract that inherets the parent contract. it usually takes more than one contract to develope a ...
1
vote
1answer
67 views

Receiving error while getting state variable value after using selfdestruct method "Error: Returned values aren't valid, did it run Out of Gas?"

I am using selfdestruct method and passing the payable address to it but receiving the following error when trying to get the value of a state variable : "Error: Returned values aren't valid, did it ...
1
vote
0answers
45 views

Retrieving a State_object value on go-ethereum

I have a deployed contract address and I need to query a contract storage value, a token account balance that is stored on a mapping variable: mapping (address => uint256) balances; From go-...
1
vote
1answer
105 views

Accessing the Ethereum State Variables using web3js (Java Script)

I'm trying to run the below code to get the state variables using the getIdBytes method of the Smart Contract, and assign it to a java script array variable, but it doesn't seem to work. All I can ...
1
vote
0answers
32 views

Best way to restore historical storage state

What is the best way to get historical storage state, given db with current world state and blockchain data? Do I need to reverse assemby code or can I do this using receipt logs?
1
vote
0answers
80 views

Layout of State Variables in Storage -> specifically NON Statically-sized variables e.g. Mapping

The following page provides information on how to access a contract's state variables, regardless of who the owner is or what methods are exposed. http://solidity.readthedocs.io/en/latest/...
1
vote
1answer
206 views

Function doesn't change change variable's value

I have made a contract with a struct, Stock. I have an array with two such Stocks. They can be initialized fine, but when I try to change the value of a variable nothing happens. Also, the same ...
0
votes
3answers
119 views

Length of state array is not changeable in Solidity

Consider there are 3 contracts: BankA, customer, and BankB.BankA transfers some ethers to customer and after that some customer's state variables must be changed (in a better words be updated). It ...
0
votes
1answer
105 views

What if millions of records to be fetched from blockchain?

This is just a hypothetical scenario. Let's suppose someone saved million of information in blockchain with huge gas consumption so far. As for reading data in ethereum smart-contract cost no gas. ...
0
votes
1answer
51 views

How Solidity field variable update is happening?

I am curious to know about, how the updation of field variables in solidity is happening ?. Whether world state is maintaining for each variable in the contract as like account balance?. And one more ...
0
votes
1answer
15 views

Initialize state variables vs constructor [duplicate]

What is the purpose of Constructor if I can initialize the state variables directly. contract ConZ { address public owner = msg.sender; uint public x = 123; } _ contract Conx { address ...
0
votes
1answer
14 views

Add new variable to defined struct

Is it possible to create a new variable/key -with its corresponding value- for an already defined Struct? Kind of like objects in JS. struct MyStruct { //defined elsewhere in SomeLib uint num; ...
0
votes
1answer
17 views

wrapping state variables in struct

I asked this question in OZ forum and I'm asking it here again. The question is Why a state variable is wrapped in a struct in their Counters library. Please see the question in that post. Thanks.