I have questions about how many bytes each type might be.
Question 1) now() timestamp. i think it's uint which means uint256 which means 32 bytes? Am I right?
Question 2) what does bytes32 mean? They say it's an array. but i can't do push on it. something like this: bytes32 public array; array.push("good");
so it's kind of an array like a string? string s = "good";
like this? but imagine what if I want to have arrays of 32 bytes?
Question 3) what about event logs topics? if I write uint indexed var1
in a log, a) i know that it's gonna cost me 32 bytes as uint is 32 bytes but what if b) I write bytes16 indexed var2
, is it still gonna cost me 32 bytes or just 16 bytes? and c) what if i save more than 32 bytes in a log and it's a topic, lets say 50bytes, is it gonna cost me still 32 bytes and keccak256 hash will be stored there ? Am I right in a) , b) and c)
Thanks guys. before writing questions, I always try to put my idea on it .