diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index 73240bbd4..523a08670 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## Unreleased + +- **Breaking change**: Update to OpenZeppelin Contracts 4.9. ([#252](https://github.com/OpenZeppelin/contracts-wizard/pull/252)) + ## 0.2.3 (2023-03-23) - Fix module not found error. ([#235](https://github.com/OpenZeppelin/contracts-wizard/issues/235)) diff --git a/packages/core/package.json b/packages/core/package.json index c3de98691..1626627de 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -20,8 +20,8 @@ "update-env": "rm ./src/environments/hardhat/package-lock.json && npm install --package-lock-only --prefix ./src/environments/hardhat && rm ./src/environments/hardhat/upgradeable/package-lock.json && npm install --package-lock-only --prefix ./src/environments/hardhat/upgradeable" }, "devDependencies": { - "@openzeppelin/contracts": "4.8.3", - "@openzeppelin/contracts-upgradeable": "4.8.3", + "@openzeppelin/contracts": "4.9.0", + "@openzeppelin/contracts-upgradeable": "4.9.0", "@types/node": "^10.17.51", "@types/rimraf": "^3.0.0", "array.prototype.flat": "^1.2.4", diff --git a/packages/core/src/environments/hardhat/package-lock.json b/packages/core/src/environments/hardhat/package-lock.json index 48ae293a3..2a6cb2809 100644 --- a/packages/core/src/environments/hardhat/package-lock.json +++ b/packages/core/src/environments/hardhat/package-lock.json @@ -1408,9 +1408,9 @@ } }, "node_modules/@openzeppelin/contracts": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.8.3.tgz", - "integrity": "sha512-bQHV8R9Me8IaJoJ2vPG4rXcL7seB7YVuskr4f+f5RyOStSZetwzkWtoqDMl5erkBJy0lDRUnIR2WIkPiC0GJlg==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.9.0.tgz", + "integrity": "sha512-DUP74AFGKlic2sQb/CmgrN2aUPMFGxRrmCTUxLHsiU2RzwWqVuMPZBxiAyvlff6Pea77uylAX6B5x9W6evEbhA==", "dev": true }, "node_modules/@scure/base": { @@ -9707,9 +9707,9 @@ } }, "@openzeppelin/contracts": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.8.3.tgz", - "integrity": "sha512-bQHV8R9Me8IaJoJ2vPG4rXcL7seB7YVuskr4f+f5RyOStSZetwzkWtoqDMl5erkBJy0lDRUnIR2WIkPiC0GJlg==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.9.0.tgz", + "integrity": "sha512-DUP74AFGKlic2sQb/CmgrN2aUPMFGxRrmCTUxLHsiU2RzwWqVuMPZBxiAyvlff6Pea77uylAX6B5x9W6evEbhA==", "dev": true }, "@scure/base": { diff --git a/packages/core/src/environments/hardhat/upgradeable/package-lock.json b/packages/core/src/environments/hardhat/upgradeable/package-lock.json index 08eb7be74..e35772fab 100644 --- a/packages/core/src/environments/hardhat/upgradeable/package-lock.json +++ b/packages/core/src/environments/hardhat/upgradeable/package-lock.json @@ -1464,9 +1464,9 @@ } }, "node_modules/@openzeppelin/contracts-upgradeable": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.8.3.tgz", - "integrity": "sha512-SXDRl7HKpl2WDoJpn7CK/M9U4Z8gNXDHHChAKh0Iz+Wew3wu6CmFYBeie3je8V0GSXZAIYYwUktSrnW/kwVPtg==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.9.0.tgz", + "integrity": "sha512-+6i2j6vr2fdudTqkBvG+UOosankukxYzg3WN1nqU7ijjQ5A4osWaD3ip6CEz6YvDoSdZgcFVZoiGr7zRlUUoZw==", "dev": true }, "node_modules/@openzeppelin/hardhat-upgrades": { @@ -10224,9 +10224,9 @@ } }, "@openzeppelin/contracts-upgradeable": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.8.3.tgz", - "integrity": "sha512-SXDRl7HKpl2WDoJpn7CK/M9U4Z8gNXDHHChAKh0Iz+Wew3wu6CmFYBeie3je8V0GSXZAIYYwUktSrnW/kwVPtg==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.9.0.tgz", + "integrity": "sha512-+6i2j6vr2fdudTqkBvG+UOosankukxYzg3WN1nqU7ijjQ5A4osWaD3ip6CEz6YvDoSdZgcFVZoiGr7zRlUUoZw==", "dev": true }, "@openzeppelin/hardhat-upgrades": { diff --git a/packages/core/src/erc721.test.ts.md b/packages/core/src/erc721.test.ts.md index d4c582709..44baa48c4 100644 --- a/packages/core/src/erc721.test.ts.md +++ b/packages/core/src/erc721.test.ts.md @@ -96,6 +96,15 @@ Generated by [AVA](https://avajs.dev). {␊ return super.tokenURI(tokenId);␊ }␊ + ␊ + function supportsInterface(bytes4 interfaceId)␊ + public␊ + view␊ + override(ERC721, ERC721URIStorage)␊ + returns (bool)␊ + {␊ + return super.supportsInterface(interfaceId);␊ + }␊ }␊ ` @@ -135,6 +144,15 @@ Generated by [AVA](https://avajs.dev). {␊ return super.tokenURI(tokenId);␊ }␊ + ␊ + function supportsInterface(bytes4 interfaceId)␊ + public␊ + view␊ + override(ERC721, ERC721URIStorage)␊ + returns (bool)␊ + {␊ + return super.supportsInterface(interfaceId);␊ + }␊ }␊ ` @@ -178,6 +196,15 @@ Generated by [AVA](https://avajs.dev). {␊ return super.tokenURI(tokenId);␊ }␊ + ␊ + function supportsInterface(bytes4 interfaceId)␊ + public␊ + view␊ + override(ERC721, ERC721URIStorage)␊ + returns (bool)␊ + {␊ + return super.supportsInterface(interfaceId);␊ + }␊ }␊ ` @@ -224,6 +251,15 @@ Generated by [AVA](https://avajs.dev). {␊ return super.tokenURI(tokenId);␊ }␊ + ␊ + function supportsInterface(bytes4 interfaceId)␊ + public␊ + view␊ + override(ERC721, ERC721URIStorage)␊ + returns (bool)␊ + {␊ + return super.supportsInterface(interfaceId);␊ + }␊ }␊ ` diff --git a/packages/core/src/erc721.test.ts.snap b/packages/core/src/erc721.test.ts.snap index fe9835a16..597d7d51e 100644 Binary files a/packages/core/src/erc721.test.ts.snap and b/packages/core/src/erc721.test.ts.snap differ diff --git a/packages/core/src/erc721.ts b/packages/core/src/erc721.ts index 956cffa71..33a22ace8 100644 --- a/packages/core/src/erc721.ts +++ b/packages/core/src/erc721.ts @@ -143,6 +143,7 @@ function addURIStorage(c: ContractBuilder) { c.addOverride('ERC721URIStorage', functions._burn); c.addOverride('ERC721URIStorage', functions.tokenURI); + c.addOverride('ERC721URIStorage', supportsInterface); } function addBurnable(c: ContractBuilder) { diff --git a/packages/core/src/governor.test.ts.md b/packages/core/src/governor.test.ts.md index e95b4624f..d87170687 100644 --- a/packages/core/src/governor.test.ts.md +++ b/packages/core/src/governor.test.ts.md @@ -572,6 +572,14 @@ Generated by [AVA](https://avajs.dev). {␊ return super.supportsInterface(interfaceId);␊ }␊ + ␊ + function cancel(address[] memory targets, uint256[] memory values, bytes[] memory calldatas, bytes32 descriptionHash)␊ + public␊ + override(Governor, IGovernor, GovernorCompatibilityBravo)␊ + returns (uint256)␊ + {␊ + return super.cancel(targets, values, calldatas, descriptionHash);␊ + }␊ }␊ ` diff --git a/packages/core/src/governor.test.ts.snap b/packages/core/src/governor.test.ts.snap index 46b776a1e..0ef3f8e9b 100644 Binary files a/packages/core/src/governor.test.ts.snap and b/packages/core/src/governor.test.ts.snap differ diff --git a/packages/core/src/governor.ts b/packages/core/src/governor.ts index 3a85c2377..8667ec6ef 100644 --- a/packages/core/src/governor.ts +++ b/packages/core/src/governor.ts @@ -117,6 +117,7 @@ function addBase(c: ContractBuilder, { name }: GovernorOptions) { c.addOverride('Governor', functions._cancel); c.addOverride('Governor', functions._executor); c.addOverride('Governor', supportsInterface); + c.addOverride('Governor', functions.cancel); } function addSettings(c: ContractBuilder, allOpts: Required) { @@ -365,6 +366,8 @@ function addBravo(c: ContractBuilder, { bravo, timelock }: GovernorOptions) { path: '@openzeppelin/contracts/governance/compatibility/GovernorCompatibilityBravo.sol', }); c.addOverride('IGovernor', functions.state); + c.addOverride('IGovernor', functions.cancel); + c.addOverride('GovernorCompatibilityBravo', functions.cancel); c.addOverride('GovernorCompatibilityBravo', functions.propose); c.addOverride('IERC165', supportsInterface); } @@ -433,6 +436,16 @@ const functions = defineFunctions({ returns: ['uint256'], kind: 'internal', }, + cancel: { + args: [ + { name: 'targets', type: 'address[] memory' }, + { name: 'values', type: 'uint256[] memory' }, + { name: 'calldatas', type: 'bytes[] memory' }, + { name: 'descriptionHash', type: 'bytes32' }, + ], + returns: ['uint256'], + kind: 'public', + }, state: { args: [ { name: 'proposalId', type: 'uint256' }, diff --git a/packages/core/src/zip.test.ts b/packages/core/src/zip.test.ts index 0bbe2c4a1..949cc057c 100644 --- a/packages/core/src/zip.test.ts +++ b/packages/core/src/zip.test.ts @@ -55,6 +55,7 @@ test('erc721 auto increment', t => { '@openzeppelin/contracts/utils/introspection/IERC165.sol', '@openzeppelin/contracts/utils/math/', '@openzeppelin/contracts/utils/math/Math.sol', + '@openzeppelin/contracts/utils/math/SignedMath.sol', 'MyToken.sol', ]); }); @@ -99,6 +100,7 @@ test('erc721 auto increment uups', t => { '@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol', '@openzeppelin/contracts-upgradeable/utils/math/', '@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol', + '@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol', 'MyToken.sol', ]); }); diff --git a/yarn.lock b/yarn.lock index 0ae8c6f57..c1a2afba1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -746,15 +746,15 @@ "@nomicfoundation/solidity-analyzer-win32-ia32-msvc" "0.1.1" "@nomicfoundation/solidity-analyzer-win32-x64-msvc" "0.1.1" -"@openzeppelin/contracts-upgradeable@4.8.3": - version "4.8.3" - resolved "https://registry.yarnpkg.com/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.8.3.tgz#6b076a7b751811b90fe3a172a7faeaa603e13a3f" - integrity sha512-SXDRl7HKpl2WDoJpn7CK/M9U4Z8gNXDHHChAKh0Iz+Wew3wu6CmFYBeie3je8V0GSXZAIYYwUktSrnW/kwVPtg== - -"@openzeppelin/contracts@4.8.3": - version "4.8.3" - resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.8.3.tgz#cbef3146bfc570849405f59cba18235da95a252a" - integrity sha512-bQHV8R9Me8IaJoJ2vPG4rXcL7seB7YVuskr4f+f5RyOStSZetwzkWtoqDMl5erkBJy0lDRUnIR2WIkPiC0GJlg== +"@openzeppelin/contracts-upgradeable@4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.9.0.tgz#70aaef469c8ac5bb0ff781480f3d321cbf7be3a8" + integrity sha512-+6i2j6vr2fdudTqkBvG+UOosankukxYzg3WN1nqU7ijjQ5A4osWaD3ip6CEz6YvDoSdZgcFVZoiGr7zRlUUoZw== + +"@openzeppelin/contracts@4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.9.0.tgz#683f33b6598970051bc5f0806fd8660da9e018dd" + integrity sha512-DUP74AFGKlic2sQb/CmgrN2aUPMFGxRrmCTUxLHsiU2RzwWqVuMPZBxiAyvlff6Pea77uylAX6B5x9W6evEbhA== "@pkgjs/parseargs@^0.11.0": version "0.11.0"