| 
1 | 1 | # Changelog  | 
2 | 2 | 
 
  | 
 | 3 | + | 
 | 4 | +## 3.9.1 (2025-06-30)  | 
 | 5 | + | 
 | 6 | +- Support contract verification via etherscan V2 API. ([#1166](https://github.com/OpenZeppelin/openzeppelin-upgrades/pull/1166))  | 
 | 7 | +  - **Potentially breaking changes**: Changes peer dependencies to the following:  | 
 | 8 | +    - `"@nomicfoundation/hardhat-ethers": "^3.0.6"`  | 
 | 9 | +    - `"@nomicfoundation/hardhat-verify": "^2.0.14"`  | 
 | 10 | +    - `"hardhat": "^2.24.1"`  | 
 | 11 | + | 
3 | 12 | ## 3.9.0 (2025-01-13)  | 
4 | 13 | 
 
  | 
5 | 14 | - Update Defender SDK to v2.1.0, set Hardhat origin for Defender deployments. ([#1111](https://github.com/OpenZeppelin/openzeppelin-upgrades/pull/1111))  | 
 | 
24 | 33 | ## 3.4.0 (2024-09-23)  | 
25 | 34 | 
 
  | 
26 | 35 | ### Potentially breaking changes  | 
 | 36 | + | 
27 | 37 | - Adds a check to ensure `initialOwner` is not a ProxyAdmin contract when deploying a transparent proxy. ([#1083](https://github.com/OpenZeppelin/openzeppelin-upgrades/pull/1083))  | 
28 | 38 | 
 
  | 
29 | 39 | ## 3.3.0 (2024-09-16)  | 
 | 
48 | 58 | - Defender: Fix handling of license types for block explorer verification, support `licenseType` and `skipLicenseType` options. ([#1013](https://github.com/OpenZeppelin/openzeppelin-upgrades/pull/1013))  | 
49 | 59 | 
 
  | 
50 | 60 | ### Breaking changes  | 
 | 61 | + | 
51 | 62 | - When deploying through Defender, if your contract does not have an SPDX license identifier, the verified source code on Etherscan will no longer show any license type.  | 
52 | 63 |   - If you want the license type to appear as "None", either set your contract to have `// SPDX-License-Identifier: UNLICENSED` according to [Solidity docs](https://docs.soliditylang.org/en/latest/layout-of-source-files.html#spdx-license-identifier), or set the `licenseType` option to `"None"`.  | 
53 | 64 | 
 
  | 
 | 
81 | 92 |   - **Note**: [Fully verifying proxies](https://docs.openzeppelin.com/upgrades-plugins/1.x/api-hardhat-upgrades#verify) is only supported with Etherscan at the moment. The Hardhat Upgrades plugin does not currently assist with Sourcify verification for proxies.  | 
82 | 93 | 
 
  | 
83 | 94 | ### Breaking changes  | 
 | 95 | + | 
84 | 96 | - `deployProxy`, `deployBeacon`, `deployBeaconProxy`: Deploys proxy contracts from [OpenZeppelin Contracts 5.0](https://docs.openzeppelin.com/contracts/5.x/api/proxy).  | 
85 | 97 | - `deployProxy`:  | 
86 | 98 |   - Deploying a transparent proxy automatically causes a new proxy admin contract to be deployed along with the proxy.  | 
 | 
171 | 183 | - Remove address override for deployments. ([#832](https://github.com/OpenZeppelin/openzeppelin-upgrades/pull/832))  | 
172 | 184 | 
 
  | 
173 | 185 | ### Breaking changes  | 
 | 186 | + | 
174 | 187 | This new major version requires `ethers` v6 and `@nomicfoundation/hardhat-ethers` v3 as peer dependencies.    | 
175 | 188 | For Etherscan verification, it also requires `@nomicfoundation/hardhat-verify`.  | 
176 | 189 | 
 
  | 
177 | 190 | ### How to update from a previous version  | 
 | 191 | + | 
178 | 192 | Update your existing project according to [Hardhat Toolbox v3's release notes](https://github.com/NomicFoundation/hardhat/releases/tag/%40nomicfoundation%2Fhardhat-toolbox%403.0.0).    | 
179 | 193 | Then update this plugin, for example: `npm install @openzeppelin/hardhat-upgrades@latest`  | 
180 | 194 | 
 
  | 
@@ -244,6 +258,7 @@ Then update this plugin, for example: `npm install @openzeppelin/hardhat-upgrade  | 
244 | 258 | - Override `verify:verify` subtask from hardhat-etherscan. ([#619](https://github.com/OpenZeppelin/openzeppelin-upgrades/issues/619))  | 
245 | 259 | 
 
  | 
246 | 260 | **Breaking change**: To verify a proxy on Etherscan programmatically from a Hardhat script, call `verify:verify` instead of `verify`:  | 
 | 261 | + | 
247 | 262 | ```  | 
248 | 263 | await hre.run("verify:verify", {  | 
249 | 264 |   address: PROXY_ADDRESS,  | 
 | 
0 commit comments