Are there any restrictions on the length of the value that can be stored as type string
in Solidity? I am trying to store a string
value in the smart contract member field. The length comes to around 220 chars. If I reduce the string value to around 140 chars I am able to store it. Any more and it does not work.
1 Answer
the problem is not about the string size but about the provided gas, the storage costs more gas as you store more data. so when you increase the string size increase the gas limit provided in your transaction. using the following example :
contract store{
string public storage_;
function store_it(string s){
storage_=s;
}
}
I've provided a string with 220 character it costs me 774675 gas.
-
1BTW, the documentation defines string as arbitrary-length, which suggests that the gas cost is the only limiting factor here. Aug 3, 2017 at 12:17
-
1the storage cost is discussed in a related post ethereum.stackexchange.com/questions/872/…– Badr Bellaj ♦Aug 3, 2017 at 12:32
-
@SergeiTikhomirov is there a way to limit the number of characters in the string? Aug 31, 2020 at 22:58
-
If you limit to 255 characters, how expensive is it. As of this moment 774675 gas is around $0.00000000123888350025– LokiareFeb 8, 2021 at 0:04
-
1