diff --git a/.changeset/fresh-birds-kiss.md b/.changeset/fresh-birds-kiss.md new file mode 100644 index 00000000000..221f54cdf48 --- /dev/null +++ b/.changeset/fresh-birds-kiss.md @@ -0,0 +1,5 @@ +--- +'openzeppelin-solidity': major +--- + +`Checkpoints`: library moved from `utils` to `utils/structs` diff --git a/contracts/governance/extensions/GovernorVotesQuorumFraction.sol b/contracts/governance/extensions/GovernorVotesQuorumFraction.sol index e26ffb2600c..d42bb2f47ef 100644 --- a/contracts/governance/extensions/GovernorVotesQuorumFraction.sol +++ b/contracts/governance/extensions/GovernorVotesQuorumFraction.sol @@ -4,8 +4,8 @@ pragma solidity ^0.8.0; import "./GovernorVotes.sol"; -import "../../utils/Checkpoints.sol"; import "../../utils/math/SafeCast.sol"; +import "../../utils/structs/Checkpoints.sol"; /** * @dev Extension of {Governor} for voting weight extraction from an {ERC20Votes} token and a quorum expressed as a diff --git a/contracts/governance/utils/Votes.sol b/contracts/governance/utils/Votes.sol index a579811e506..cc1143fe281 100644 --- a/contracts/governance/utils/Votes.sol +++ b/contracts/governance/utils/Votes.sol @@ -5,8 +5,8 @@ pragma solidity ^0.8.0; import "../../interfaces/IERC5805.sol"; import "../../utils/Context.sol"; import "../../utils/Nonces.sol"; -import "../../utils/Checkpoints.sol"; import "../../utils/cryptography/EIP712.sol"; +import "../../utils/structs/Checkpoints.sol"; /** * @dev This is a base abstract contract that tracks voting units, which are a measure of voting power that can be diff --git a/contracts/token/ERC721/extensions/ERC721Consecutive.sol b/contracts/token/ERC721/extensions/ERC721Consecutive.sol index a6ab6c76bb7..4191ad68458 100644 --- a/contracts/token/ERC721/extensions/ERC721Consecutive.sol +++ b/contracts/token/ERC721/extensions/ERC721Consecutive.sol @@ -5,8 +5,8 @@ pragma solidity ^0.8.1; import "../ERC721.sol"; import "../../../interfaces/IERC2309.sol"; -import "../../../utils/Checkpoints.sol"; import "../../../utils/structs/BitMaps.sol"; +import "../../../utils/structs/Checkpoints.sol"; /** * @dev Implementation of the ERC2309 "Consecutive Transfer Extension" as defined in diff --git a/contracts/utils/Checkpoints.sol b/contracts/utils/structs/Checkpoints.sol similarity index 99% rename from contracts/utils/Checkpoints.sol rename to contracts/utils/structs/Checkpoints.sol index 90f03aef7dd..f2ee458115e 100644 --- a/contracts/utils/Checkpoints.sol +++ b/contracts/utils/structs/Checkpoints.sol @@ -1,11 +1,11 @@ // SPDX-License-Identifier: MIT -// OpenZeppelin Contracts (last updated v4.9.0) (utils/Checkpoints.sol) +// OpenZeppelin Contracts (last updated v4.9.0) (utils/structs/Checkpoints.sol) // This file was procedurally generated from scripts/generate/templates/Checkpoints.js. pragma solidity ^0.8.0; -import "./math/Math.sol"; -import "./math/SafeCast.sol"; +import "../math/Math.sol"; +import "../math/SafeCast.sol"; /** * @dev This library defines the `History` struct, for checkpointing values as they change at different points in diff --git a/scripts/generate/run.js b/scripts/generate/run.js index 368b53ad1ea..53589455ab5 100755 --- a/scripts/generate/run.js +++ b/scripts/generate/run.js @@ -35,7 +35,7 @@ for (const [file, template] of Object.entries({ 'utils/math/SafeCast.sol': './templates/SafeCast.js', 'utils/structs/EnumerableSet.sol': './templates/EnumerableSet.js', 'utils/structs/EnumerableMap.sol': './templates/EnumerableMap.js', - 'utils/Checkpoints.sol': './templates/Checkpoints.js', + 'utils/structs/Checkpoints.sol': './templates/Checkpoints.js', 'utils/StorageSlot.sol': './templates/StorageSlot.js', })) { generateFromTemplate(file, template, './contracts/'); @@ -43,7 +43,7 @@ for (const [file, template] of Object.entries({ // Tests for (const [file, template] of Object.entries({ - 'utils/Checkpoints.t.sol': './templates/Checkpoints.t.js', + 'utils/structs/Checkpoints.t.sol': './templates/Checkpoints.t.js', })) { generateFromTemplate(file, template, './test/'); } diff --git a/scripts/generate/templates/Checkpoints.js b/scripts/generate/templates/Checkpoints.js index de58ad19e3a..f339fde2268 100644 --- a/scripts/generate/templates/Checkpoints.js +++ b/scripts/generate/templates/Checkpoints.js @@ -5,8 +5,8 @@ const { OPTS } = require('./Checkpoints.opts.js'); const header = `\ pragma solidity ^0.8.0; -import "./math/Math.sol"; -import "./math/SafeCast.sol"; +import "../math/Math.sol"; +import "../math/SafeCast.sol"; /** * @dev This library defines the \`History\` struct, for checkpointing values as they change at different points in diff --git a/scripts/generate/templates/Checkpoints.t.js b/scripts/generate/templates/Checkpoints.t.js index 0451ecea442..2b8c7b67c4c 100644 --- a/scripts/generate/templates/Checkpoints.t.js +++ b/scripts/generate/templates/Checkpoints.t.js @@ -7,8 +7,8 @@ const header = `\ pragma solidity ^0.8.0; import "forge-std/Test.sol"; -import "../../contracts/utils/Checkpoints.sol"; -import "../../contracts/utils/math/SafeCast.sol"; +import "../../../contracts/utils/math/SafeCast.sol"; +import "../../../contracts/utils/structs/Checkpoints.sol"; `; /* eslint-disable max-len */ diff --git a/test/utils/Checkpoints.t.sol b/test/utils/structs/Checkpoints.t.sol similarity index 98% rename from test/utils/Checkpoints.t.sol rename to test/utils/structs/Checkpoints.t.sol index 12598da46e5..e3f4bd28bc0 100644 --- a/test/utils/Checkpoints.t.sol +++ b/test/utils/structs/Checkpoints.t.sol @@ -4,8 +4,8 @@ pragma solidity ^0.8.0; import "forge-std/Test.sol"; -import "../../contracts/utils/Checkpoints.sol"; -import "../../contracts/utils/math/SafeCast.sol"; +import "../../../contracts/utils/math/SafeCast.sol"; +import "../../../contracts/utils/structs/Checkpoints.sol"; contract CheckpointsTrace224Test is Test { using Checkpoints for Checkpoints.Trace224; diff --git a/test/utils/Checkpoints.test.js b/test/utils/structs/Checkpoints.test.js similarity index 98% rename from test/utils/Checkpoints.test.js rename to test/utils/structs/Checkpoints.test.js index d9fd2c8ea8a..ad95373a48a 100644 --- a/test/utils/Checkpoints.test.js +++ b/test/utils/structs/Checkpoints.test.js @@ -1,7 +1,7 @@ const { expectRevert } = require('@openzeppelin/test-helpers'); const { expect } = require('chai'); -const { VALUE_SIZES } = require('../../scripts/generate/templates/Checkpoints.opts.js'); +const { VALUE_SIZES } = require('../../../scripts/generate/templates/Checkpoints.opts.js'); const $Checkpoints = artifacts.require('$Checkpoints');