Solidity offers many high-level language abstractions, but these features make it hard to understand what’s really going on when my program is running. Reading the Solidity documentation still left me confused over very basic things.
What are the differences between string, bytes32, byte, bytes?
Which one do I use, when?What’s happening when I cast a string to bytes? Can I cast to byte?How much do they cost?
How are mappings stored by the EVM?
Why can’t I delete a mapping?Can I have mappings of …