openzeppelin-contracts
openzeppelin-contracts copied to clipboard
[Breaking changes] For 6.0
Enumerable{Set,Map}- Flatten structure using procedural generation (avoid using inner structures and casting)
- Add support for non value type in code generation (ref)
PLEASE: DO NO START WORKING ON THIS !
- Reorganize the
/utils,/cryptography, and/typesfolders now that they have grown significantly.
https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5711#issuecomment-2938293803
I'd like to merge the Token > Common into just Token
- Add an
utils/encodingfolderHex(extracttoHexStringandparseXxxfromStrings.sol)Base58Base64
- Add a meta library
utils/Encoding.solthat includes all the functions from the encoding libraries
import { Hex } from "./encoding/Hex.sol";
import { Base58 } from "./encoding/Base58.sol";
import { Base64 } from "./encoding/Base64.sol";
library Encoding {
function base58encode(bytes memory input) internal pure returns (string memory) {
return Base58.encode(input);
}
function base58decode(string memory input) internal pure returns (bytes memory) {
return Base58.decode(input);
}
function base64encode(string memory input) internal pure returns (bytes memory) {
return Base64.encode(input);
}
function hexEncode(bytes memory input) internal pure returns (string memory) {
return Hex.encode(input);
}
function hexEncodeAddr(address input) internal pure returns (string memory) {
return Hex.encodeChecksumed(input);
}
function hexDecodeAddr(string memory input) internal pure returns (address) {
return Hex.decodeAddress(input);
}
}
Maybe address the risk of quantum computing for the internal storage structure.
- Add imports-order rule to solhint config.
- Move
ReentrancyGuardTransient's logic toReentrancyGuard, and drop the non-transient version. - Mark
ReentrancyGuardas stateless to avoid transpilation. - ~Do not transpile Initializable.sol~ (done in 5.5)
- Remove Context.sol and ERC2771Forwarder.sol
- Add utils library to get msgSender is ERC-2771 cases (usefull for ERC-7579)
- Removing Context from Multicall will make it stateless, removing the need for an Upgradeable version of Multicall.
- ~Do not transpile UUPSUpgradeable, ERC721Holder, ERC1155Holder~ (done in 5.5)
- other stateless contracts?