Пост
Поделитесь своими знаниями.
Are there any sid3-effects of using mappings in structs?
I have a question for any solidity expert out there. Is there any downside/security risk to storing mappings inside structs? I'm aware that deleting the struct won't delete the mapping as it's stored as a keccak256 of the mapping name and key rather than inside the struct itself.
I also aware that with ethers the mapping won't be returned as the evm doesnt store the mapping in the struct so it doesnt know where to find it except a separate getter function is created for it
- blockchain
- solidity
- smart contract
- learning
Ответы
1In addition to your points:
1 - A struct containing mapping can't be stored in a memory variable and will cause Type struct XXX is only valid in storage because it contains a (nested) mapping.;
2 - All keys in a mapping are always initialized with value 0x0. For that reason, 0x0 in the logic should be reserved for uninitialized values. Otherwise, there is no way to differentiate a value that was set to 0x0 and uninitialized value;
3 - There is now way to list all set key values in a mapping nor their count. If there is a need for that, then they need to be stored separately. OpenZepplin provides few class for extending the mapping, for example EnumerableMap.
Знаете ответ?
Пожалуйста, войдите в систему и поделитесь им.
Web3 (also known as Web 3.0) is an idea for a new iteration of the World Wide Web which incorporates concepts such as decentralization, blockchain technologies, and token-based economics.
Заработай свою долю из 1000 Sui
Зарабатывай очки репутации и получай награды за помощь в развитии сообщества Sui.

- 0xduckmove... SUI+88
1
- harry phan... SUI+61
2
- MiniBob... SUI+57
3
- ... SUIHaGiang+56
- ... SUIRogue+47
- ... SUIRogueRig+44
- ... SUIPeera Admin+25
- ... SUIVens.sui+20
- ... SUIMarlKey+20
- ... SUIdudley_smith+16