From cceac54953ccda8a9a028d0b9bf4378605fdf67e Mon Sep 17 00:00:00 2001 From: cairo Date: Fri, 27 Sep 2024 08:47:15 -0700 Subject: [PATCH] Add introduction tag for v5.1 contracts (#5228) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Ernesto García --- contracts/finance/VestingWalletCliff.sol | 2 ++ .../governance/extensions/GovernorCountingFractional.sol | 2 ++ contracts/token/ERC1155/utils/ERC1155Utils.sol | 2 ++ contracts/token/ERC20/extensions/ERC1363.sol | 2 ++ .../token/ERC20/extensions/draft-ERC20TemporaryApproval.sol | 2 ++ contracts/token/ERC721/utils/ERC721Utils.sol | 2 ++ contracts/utils/Comparators.sol | 5 +++++ contracts/utils/Errors.sol | 2 ++ contracts/utils/Packing.sol | 2 ++ contracts/utils/Panic.sol | 2 ++ contracts/utils/ReentrancyGuardTransient.sol | 2 ++ contracts/utils/SlotDerivation.sol | 2 ++ contracts/utils/cryptography/Hashes.sol | 2 ++ contracts/utils/cryptography/P256.sol | 2 ++ contracts/utils/cryptography/RSA.sol | 2 ++ contracts/utils/structs/CircularBuffer.sol | 2 ++ contracts/utils/structs/Heap.sol | 2 ++ scripts/generate/templates/Packing.js | 2 ++ scripts/generate/templates/SlotDerivation.js | 2 ++ 19 files changed, 41 insertions(+) diff --git a/contracts/finance/VestingWalletCliff.sol b/contracts/finance/VestingWalletCliff.sol index 7582ca56876..83d82510427 100644 --- a/contracts/finance/VestingWalletCliff.sol +++ b/contracts/finance/VestingWalletCliff.sol @@ -7,6 +7,8 @@ import {VestingWallet} from "./VestingWallet.sol"; /** * @dev Extension of {VestingWallet} that adds a cliff to the vesting schedule. + * + * _Available since v5.1._ */ abstract contract VestingWalletCliff is VestingWallet { using SafeCast for *; diff --git a/contracts/governance/extensions/GovernorCountingFractional.sol b/contracts/governance/extensions/GovernorCountingFractional.sol index 3a4fb664a53..a3f40201fd1 100644 --- a/contracts/governance/extensions/GovernorCountingFractional.sol +++ b/contracts/governance/extensions/GovernorCountingFractional.sol @@ -27,6 +27,8 @@ import {Math} from "../../utils/math/Math.sol"; * * Voting privately from a shielded pool using zero knowledge proofs. * * Based on ScopeLift's GovernorCountingFractional[https://github.com/ScopeLift/flexible-voting/blob/e5de2efd1368387b840931f19f3c184c85842761/src/GovernorCountingFractional.sol] + * + * _Available since v5.1._ */ abstract contract GovernorCountingFractional is Governor { using Math for *; diff --git a/contracts/token/ERC1155/utils/ERC1155Utils.sol b/contracts/token/ERC1155/utils/ERC1155Utils.sol index 1439330e41c..62accf6bc6e 100644 --- a/contracts/token/ERC1155/utils/ERC1155Utils.sol +++ b/contracts/token/ERC1155/utils/ERC1155Utils.sol @@ -9,6 +9,8 @@ import {IERC1155Errors} from "../../../interfaces/draft-IERC6093.sol"; * @dev Library that provide common ERC-1155 utility functions. * * See https://eips.ethereum.org/EIPS/eip-1155[ERC-1155]. + * + * _Available since v5.1._ */ library ERC1155Utils { /** diff --git a/contracts/token/ERC20/extensions/ERC1363.sol b/contracts/token/ERC20/extensions/ERC1363.sol index 253e443d6b1..4ae78f32764 100644 --- a/contracts/token/ERC20/extensions/ERC1363.sol +++ b/contracts/token/ERC20/extensions/ERC1363.sol @@ -12,6 +12,8 @@ import {ERC1363Utils} from "../utils/ERC1363Utils.sol"; * @dev Extension of {ERC20} tokens that adds support for code execution after transfers and approvals * on recipient contracts. Calls after transfers are enabled through the {ERC1363-transferAndCall} and * {ERC1363-transferFromAndCall} methods while calls after approvals can be made with {ERC1363-approveAndCall} + * + * _Available since v5.1._ */ abstract contract ERC1363 is ERC20, ERC165, IERC1363 { /** diff --git a/contracts/token/ERC20/extensions/draft-ERC20TemporaryApproval.sol b/contracts/token/ERC20/extensions/draft-ERC20TemporaryApproval.sol index fa1e098a7cc..515b080ea16 100644 --- a/contracts/token/ERC20/extensions/draft-ERC20TemporaryApproval.sol +++ b/contracts/token/ERC20/extensions/draft-ERC20TemporaryApproval.sol @@ -12,6 +12,8 @@ import {StorageSlot} from "../../../utils/StorageSlot.sol"; * @dev Extension of {ERC20} that adds support for temporary allowances following ERC-7674. * * WARNING: This is a draft contract. The corresponding ERC is still subject to changes. + * + * _Available since v5.1._ */ abstract contract ERC20TemporaryApproval is ERC20, IERC7674 { using SlotDerivation for bytes32; diff --git a/contracts/token/ERC721/utils/ERC721Utils.sol b/contracts/token/ERC721/utils/ERC721Utils.sol index 712ac16a70a..0e18f5cc0a8 100644 --- a/contracts/token/ERC721/utils/ERC721Utils.sol +++ b/contracts/token/ERC721/utils/ERC721Utils.sol @@ -9,6 +9,8 @@ import {IERC721Errors} from "../../../interfaces/draft-IERC6093.sol"; * @dev Library that provide common ERC-721 utility functions. * * See https://eips.ethereum.org/EIPS/eip-721[ERC-721]. + * + * _Available since v5.1._ */ library ERC721Utils { /** diff --git a/contracts/utils/Comparators.sol b/contracts/utils/Comparators.sol index 3a63aa0e8ee..c10734712bc 100644 --- a/contracts/utils/Comparators.sol +++ b/contracts/utils/Comparators.sol @@ -2,6 +2,11 @@ pragma solidity ^0.8.20; +/** + * @dev Provides a set of functions to compare values. + * + * _Available since v5.1._ + */ library Comparators { function lt(uint256 a, uint256 b) internal pure returns (bool) { return a < b; diff --git a/contracts/utils/Errors.sol b/contracts/utils/Errors.sol index 633d8c20286..715db953620 100644 --- a/contracts/utils/Errors.sol +++ b/contracts/utils/Errors.sol @@ -7,6 +7,8 @@ pragma solidity ^0.8.20; * * IMPORTANT: Backwards compatibility is not guaranteed in future versions of the library. * It is recommended to avoid relying on the error API for critical functionality. + * + * _Available since v5.1._ */ library Errors { /** diff --git a/contracts/utils/Packing.sol b/contracts/utils/Packing.sol index 8a8e3fee86f..4da311cf3c0 100644 --- a/contracts/utils/Packing.sol +++ b/contracts/utils/Packing.sol @@ -28,6 +28,8 @@ pragma solidity ^0.8.20; * } * } * ``` + * + * _Available since v5.1._ */ // solhint-disable func-name-mixedcase library Packing { diff --git a/contracts/utils/Panic.sol b/contracts/utils/Panic.sol index 8769bd9a786..0e3c38c3e36 100644 --- a/contracts/utils/Panic.sol +++ b/contracts/utils/Panic.sol @@ -18,6 +18,8 @@ pragma solidity ^0.8.20; * ``` * * Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil]. + * + * _Available since v5.1._ */ // slither-disable-next-line unused-state library Panic { diff --git a/contracts/utils/ReentrancyGuardTransient.sol b/contracts/utils/ReentrancyGuardTransient.sol index 0389b86205d..54df0a71ac8 100644 --- a/contracts/utils/ReentrancyGuardTransient.sol +++ b/contracts/utils/ReentrancyGuardTransient.sol @@ -8,6 +8,8 @@ import {StorageSlot} from "./StorageSlot.sol"; * @dev Variant of {ReentrancyGuard} that uses transient storage. * * NOTE: This variant only works on networks where EIP-1153 is available. + * + * _Available since v5.1._ */ abstract contract ReentrancyGuardTransient { using StorageSlot for *; diff --git a/contracts/utils/SlotDerivation.sol b/contracts/utils/SlotDerivation.sol index c248edc01c1..83b9d5639c0 100644 --- a/contracts/utils/SlotDerivation.sol +++ b/contracts/utils/SlotDerivation.sol @@ -34,6 +34,8 @@ pragma solidity ^0.8.20; * * NOTE: This library provides a way to manipulate storage locations in a non-standard way. Tooling for checking * upgrade safety will ignore the slots accessed through this library. + * + * _Available since v5.1._ */ library SlotDerivation { /** diff --git a/contracts/utils/cryptography/Hashes.sol b/contracts/utils/cryptography/Hashes.sol index 85efd6d294e..0ed89b308c0 100644 --- a/contracts/utils/cryptography/Hashes.sol +++ b/contracts/utils/cryptography/Hashes.sol @@ -4,6 +4,8 @@ pragma solidity ^0.8.20; /** * @dev Library of standard hash functions. + * + * _Available since v5.1._ */ library Hashes { /** diff --git a/contracts/utils/cryptography/P256.sol b/contracts/utils/cryptography/P256.sol index eebedfd34f7..1c46e38b0be 100644 --- a/contracts/utils/cryptography/P256.sol +++ b/contracts/utils/cryptography/P256.sol @@ -14,6 +14,8 @@ import {Errors} from "../Errors.sol"; * Based on the original https://github.com/itsobvioustech/aa-passkeys-wallet/blob/d3d423f28a4d8dfcb203c7fa0c47f42592a7378e/src/Secp256r1.sol[implementation of itsobvioustech] (GNU General Public License v3.0). * Heavily inspired in https://github.com/maxrobot/elliptic-solidity/blob/c4bb1b6e8ae89534d8db3a6b3a6b52219100520f/contracts/Secp256r1.sol[maxrobot] and * https://github.com/tdrerup/elliptic-curve-solidity/blob/59a9c25957d4d190eff53b6610731d81a077a15e/contracts/curves/EllipticCurve.sol[tdrerup] implementations. + * + * _Available since v5.1._ */ library P256 { struct JPoint { diff --git a/contracts/utils/cryptography/RSA.sol b/contracts/utils/cryptography/RSA.sol index 689124b5959..c8da4f96206 100644 --- a/contracts/utils/cryptography/RSA.sol +++ b/contracts/utils/cryptography/RSA.sol @@ -11,6 +11,8 @@ import {Math} from "../math/Math.sol"; * RSA semantically secure for signing messages. * * Inspired by https://github.com/adria0/SolRsaVerify/blob/79c6182cabb9102ea69d4a2e996816091d5f1cd1[Adrià Massanet's work] (GNU General Public License v3.0). + * + * _Available since v5.1._ */ library RSA { /** diff --git a/contracts/utils/structs/CircularBuffer.sol b/contracts/utils/structs/CircularBuffer.sol index faaad2f028b..cf1afbbd6ea 100644 --- a/contracts/utils/structs/CircularBuffer.sol +++ b/contracts/utils/structs/CircularBuffer.sol @@ -34,6 +34,8 @@ import {Panic} from "../Panic.sol"; * CircularBuffer.Bytes32CircularBuffer private myBuffer; * } * ``` + * + * _Available since v5.1._ */ library CircularBuffer { /** diff --git a/contracts/utils/structs/Heap.sol b/contracts/utils/structs/Heap.sol index 17a778f3aa7..d33dfbec8b2 100644 --- a/contracts/utils/structs/Heap.sol +++ b/contracts/utils/structs/Heap.sol @@ -33,6 +33,8 @@ import {StorageSlot} from "../StorageSlot.sol"; * IMPORTANT: This library allows for the use of custom comparator functions. Given that manipulating * memory can lead to unexpected behavior. Consider verifying that the comparator does not manipulate * the Heap's state directly and that it follows the Solidity memory safety rules. + * + * _Available since v5.1._ */ library Heap { using Arrays for *; diff --git a/scripts/generate/templates/Packing.js b/scripts/generate/templates/Packing.js index d841c2f816a..9f3b7716a6a 100644 --- a/scripts/generate/templates/Packing.js +++ b/scripts/generate/templates/Packing.js @@ -32,6 +32,8 @@ pragma solidity ^0.8.20; * } * } * \`\`\` + * + * _Available since v5.1._ */ // solhint-disable func-name-mixedcase `; diff --git a/scripts/generate/templates/SlotDerivation.js b/scripts/generate/templates/SlotDerivation.js index 39d0d9e3508..ec4d244b931 100644 --- a/scripts/generate/templates/SlotDerivation.js +++ b/scripts/generate/templates/SlotDerivation.js @@ -36,6 +36,8 @@ pragma solidity ^0.8.20; * * NOTE: This library provides a way to manipulate storage locations in a non-standard way. Tooling for checking * upgrade safety will ignore the slots accessed through this library. + * + * _Available since v5.1._ */ `;