# openzeppelin与solidity版本对应关系

By [rick@layer2](https://paragraph.com/@rick-layer2) · 2023-09-04

---

OpenZeppelin是构建在 EVM 之上的开源智能合约开发工具，让开发者可以安全地开发和管理智能合约和 Dapp。OpenZeppelin 使用以太坊智能合约语言 Solidity 进行构建，并支持所有 EVM 和 eWASM 的跨平台移植。使用OpenZeppelin库，可以让智能合约更加安全、更加简洁。

1、版本对应关系

OpenZeppelin与Solidity的版本是一一对应的，依次如下：

`序号 Solidity OpenZeppelin`

`1 0.5.x 2.3.x ~ 2.5.x`

`2 0.6.x 3.0.x ~ 3.1.x 或 3.4`

`3 0.7.x 3.2.x ~ 3.3.x 或 3.4`

`4 0.8.x 4.0.x ~ 4.3.x`

从上可知:

`OpenZeppelin v2.x系列，适用于sol v0.5.x;`    

`OpenZeppelin v3.0~3.1系列，适用于sol v0.6.x;`    

`OpenZeppelin v3.2~3.3系列，适用于sol v0.7.x;`    

`OpenZeppelin v4.0~4.3系列，适用于sol v0.8.x;`

`同时，OpenZeppelin v3.4兼容sol v0.6 和sol v0.7。`

这里以在Remix里，编写sol v0.6.x+openzeppelin v3.0.0 的智能合约为例，如下：

    // SPDX-License-Identifier: MIT
    pragma solidity ^0.6.0;
    
    import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v3.0.0/contracts/token/ERC20/ERC20.sol";
    
    contract WETH is ERC20 {
        constructor() ERC20('Wrapped Ether', 'WETH') public {}
        
        function mint() external payable {
            _mint(msg.sender, msg.value);
        }
        
        function burn(uint amount) external {
            msg.sender.transfer(amount);
            _burn(msg.sender, amount);
        }
    }

---

*Originally published on [rick@layer2](https://paragraph.com/@rick-layer2/openzeppelin-solidity)*
