solidity storage layout
本文档介绍了OpenZeppelin Contracts库中提供的各种实用工具,包括密码学(签名验证,包括ECDSA、P256和RSA)、Merkle证明验证、接口自省(ERC-165)、数学运算、数据结构(如BitMaps、EnumerableSet、MerkleTree等)、数据打包、底层存储槽操作(StorageSlot)、Base64编码以及多重调用(Multicall)等功能。
从foundry工程化的角度详细解读Openzeppelin中的StorageSlot库及对应测试。
变量 accountRoles 占用的 slot = 0, slot0里面存储的值也是0. 因此删除 delete accountRoles 并不会删除整个的storage(即把整个的storage置0)