Very great article, and very easy to follow along, despite how low level and in-depth the EVM opcodes are.
I just noticed a small typo:
"There we have it, after this opcode executes you’ll be taken to the location of the store(uint156) bytecode and the execution of the function will continue as normal."
Where it should be 'store(uint256)' :)
Can I also ask which tool you used to create the green screenshot of the stack? :)
I started learning Solidity, to get into blockchain security but I had so many questions of how the code work's at a fundamental EVM level, this is the real deal. Only other thing that would have blown my mind is if you explained how each function() is a unit of energy, interacting at energy level with the EVM (but that's matrix stuff) :)
Hi. This is a great article! Thank you! Anyway, can I ask why do they need to go through the trouble of `PUSH4 0x2e64cec1 -> EQ -> PUSH2 0x003b -> JUMPI` to push the `retrieve()` (`0x2e64cec1`) function when it is clearly not needed/executed (after all, it is `store(uint256)` that is being called)?
Top notch content
Very great article, and very easy to follow along, despite how low level and in-depth the EVM opcodes are.
I just noticed a small typo:
"There we have it, after this opcode executes you’ll be taken to the location of the store(uint156) bytecode and the execution of the function will continue as normal."
Where it should be 'store(uint256)' :)
Can I also ask which tool you used to create the green screenshot of the stack? :)
Finally had a chance to read this. Great stuff!!
Interesting
Where are you? I dont see your twitter account..
Thank you so much for this, awesome article!!
Reminds me of my college hard days. Thank you
I started learning Solidity, to get into blockchain security but I had so many questions of how the code work's at a fundamental EVM level, this is the real deal. Only other thing that would have blown my mind is if you explained how each function() is a unit of energy, interacting at energy level with the EVM (but that's matrix stuff) :)
Hi. This is a great article! Thank you! Anyway, can I ask why do they need to go through the trouble of `PUSH4 0x2e64cec1 -> EQ -> PUSH2 0x003b -> JUMPI` to push the `retrieve()` (`0x2e64cec1`) function when it is clearly not needed/executed (after all, it is `store(uint256)` that is being called)?