Преглед на файлове

Move the Checkpoints library to utils/structs (#4275)

Hadrien Croubois преди 2 години
родител
ревизия
4448c13c3c

+ 5 - 0
.changeset/fresh-birds-kiss.md

@@ -0,0 +1,5 @@
+---
+'openzeppelin-solidity': major
+---
+
+`Checkpoints`: library moved from `utils` to `utils/structs`

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

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

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

+ 3 - 3
contracts/utils/Checkpoints.sol → 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

+ 2 - 2
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/');
 }

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

+ 2 - 2
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 */

+ 2 - 2
test/utils/Checkpoints.t.sol → 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;

+ 1 - 1
test/utils/Checkpoints.test.js → 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');