As I was trying to get a deeper understanding of mapping, I experimented with three contracts: 1. a blank empty contract; 2. a contract with a mapping(uint256=>string) aMap
; 3. a contract with a mapping(uint256=>string) private aMap
. All three contracts return bytecodes of the same length, yet with one chunk of bytecodes that are different among three. I am wondering what is a mapping represented in a contract. Is it stored as a mapping functionality or a mapping storage + functionality? But clearly, the later is not true. OK, here is the bytecode of the three cases:
'0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220_dbc3bee527d1a4b2626a4d6320b05b3f3e347a339939910f4d0517a8f697d567_64736f6c63430008040033'
'0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220_56834bd4763755e13ff70d3305f8b933b29b4b4cf275d6181f410a56f5b21c60_64736f6c63430008040033'
'0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220_9606eee4287c6de9b2951f90e06ab16679fae460ca53f03c55240f89719a5aeb_64736f6c63430008040033'
Could anyone please tell me how to read the bytecode to see what is happening here?