|  | 
| 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