Finish Initializable

pull/4525/head
ernestognw 2 years ago
parent de70816716
commit 01aea1b704
No known key found for this signature in database
  1. 4
      certora/diff/access_AccessControl.sol.patch
  2. 4
      certora/diff/access_IAccessControl.sol.patch
  3. 4
      certora/diff/access_Ownable.sol.patch
  4. 4
      certora/diff/access_Ownable2Step.sol.patch
  5. 4
      certora/diff/access_extensions_AccessControlDefaultAdminRules.sol.patch
  6. 4
      certora/diff/access_extensions_IAccessControlDefaultAdminRules.sol.patch
  7. 4
      certora/diff/interfaces_IERC3156FlashBorrower.sol.patch
  8. 4
      certora/diff/interfaces_IERC3156FlashLender.sol.patch
  9. 4
      certora/diff/interfaces_IERC5267.sol.patch
  10. 4
      certora/diff/interfaces_IERC5313.sol.patch
  11. 4
      certora/diff/interfaces_draft-IERC6093.sol.patch
  12. 11
      certora/diff/proxy_utils_Initializable.sol.patch
  13. 4
      certora/diff/security_Pausable.sol.patch
  14. 4
      certora/diff/token_ERC20_ERC20.sol.patch
  15. 4
      certora/diff/token_ERC20_IERC20.sol.patch
  16. 4
      certora/diff/token_ERC20_extensions_ERC20FlashMint.sol.patch
  17. 4
      certora/diff/token_ERC20_extensions_ERC20Permit.sol.patch
  18. 4
      certora/diff/token_ERC20_extensions_IERC20Metadata.sol.patch
  19. 4
      certora/diff/token_ERC20_extensions_IERC20Permit.sol.patch
  20. 10
      certora/diff/token_ERC721_ERC721.sol.patch
  21. 4
      certora/diff/utils_Context.sol.patch
  22. 4
      certora/diff/utils_Nonces.sol.patch
  23. 4
      certora/diff/utils_ShortStrings.sol.patch
  24. 4
      certora/diff/utils_StorageSlot.sol.patch
  25. 4
      certora/diff/utils_Strings.sol.patch
  26. 4
      certora/diff/utils_cryptography_ECDSA.sol.patch
  27. 4
      certora/diff/utils_cryptography_EIP712.sol.patch
  28. 4
      certora/diff/utils_cryptography_MessageHashUtils.sol.patch
  29. 4
      certora/diff/utils_introspection_ERC165.sol.patch
  30. 4
      certora/diff/utils_introspection_IERC165.sol.patch
  31. 4
      certora/diff/utils_math_Math.sol.patch
  32. 4
      certora/diff/utils_math_SafeCast.sol.patch
  33. 4
      certora/diff/utils_math_SignedMath.sol.patch
  34. 4
      certora/diff/utils_structs_DoubleEndedQueue.sol.patch
  35. 14
      certora/harnesses/InitializableHarness.sol
  36. 38
      certora/specs/Initializable.spec

@ -1,5 +1,5 @@
--- access/AccessControl.sol 2023-08-10 22:02:18 --- access/AccessControl.sol 2023-08-11 20:33:54
+++ access/AccessControl.sol 2023-08-11 12:22:17 +++ access/AccessControl.sol 2023-08-13 09:56:16
@@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (access/AccessControl.sol) // OpenZeppelin Contracts (last updated v4.9.0) (access/AccessControl.sol)

@ -1,5 +1,5 @@
--- access/IAccessControl.sol 2023-08-10 22:02:20 --- access/IAccessControl.sol 2023-08-11 20:33:54
+++ access/IAccessControl.sol 2023-08-11 12:22:17 +++ access/IAccessControl.sol 2023-08-13 09:56:16
@@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol) // OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)

@ -1,5 +1,5 @@
--- access/Ownable.sol 2023-08-09 11:45:05 --- access/Ownable.sol 2023-08-11 20:33:54
+++ access/Ownable.sol 2023-08-11 12:22:17 +++ access/Ownable.sol 2023-08-13 09:56:16
@@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol) // OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)

@ -1,5 +1,5 @@
--- access/Ownable2Step.sol 2023-08-09 11:45:05 --- access/Ownable2Step.sol 2023-08-11 20:33:54
+++ access/Ownable2Step.sol 2023-08-11 12:22:17 +++ access/Ownable2Step.sol 2023-08-13 09:56:16
@@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable2Step.sol) // OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable2Step.sol)

@ -1,5 +1,5 @@
--- access/extensions/AccessControlDefaultAdminRules.sol 2023-08-09 11:45:05 --- access/extensions/AccessControlDefaultAdminRules.sol 2023-08-11 20:33:54
+++ access/extensions/AccessControlDefaultAdminRules.sol 2023-08-11 12:22:17 +++ access/extensions/AccessControlDefaultAdminRules.sol 2023-08-13 09:56:16
@@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (access/AccessControlDefaultAdminRules.sol) // OpenZeppelin Contracts (last updated v4.9.0) (access/AccessControlDefaultAdminRules.sol)

@ -1,5 +1,5 @@
--- access/extensions/IAccessControlDefaultAdminRules.sol 2023-08-09 11:45:05 --- access/extensions/IAccessControlDefaultAdminRules.sol 2023-08-11 20:33:54
+++ access/extensions/IAccessControlDefaultAdminRules.sol 2023-08-11 12:22:17 +++ access/extensions/IAccessControlDefaultAdminRules.sol 2023-08-13 09:56:16
@@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (access/IAccessControlDefaultAdminRules.sol) // OpenZeppelin Contracts (last updated v4.9.0) (access/IAccessControlDefaultAdminRules.sol)

@ -1,5 +1,5 @@
--- interfaces/IERC3156FlashBorrower.sol 2023-08-09 11:45:05 --- interfaces/IERC3156FlashBorrower.sol 2023-08-11 20:33:54
+++ interfaces/IERC3156FlashBorrower.sol 2023-08-11 13:36:59 +++ interfaces/IERC3156FlashBorrower.sol 2023-08-13 09:56:16
@@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC3156FlashBorrower.sol) // OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC3156FlashBorrower.sol)

@ -1,5 +1,5 @@
--- interfaces/IERC3156FlashLender.sol 2023-08-09 11:45:05 --- interfaces/IERC3156FlashLender.sol 2023-08-11 20:33:54
+++ interfaces/IERC3156FlashLender.sol 2023-08-11 13:37:04 +++ interfaces/IERC3156FlashLender.sol 2023-08-13 09:56:16
@@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (interfaces/IERC3156FlashLender.sol) // OpenZeppelin Contracts v4.4.1 (interfaces/IERC3156FlashLender.sol)

@ -1,5 +1,5 @@
--- interfaces/IERC5267.sol 2023-08-09 11:45:05 --- interfaces/IERC5267.sol 2023-08-11 20:33:54
+++ interfaces/IERC5267.sol 2023-08-11 12:22:17 +++ interfaces/IERC5267.sol 2023-08-13 09:56:16
@@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC5267.sol) // OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC5267.sol)

@ -1,5 +1,5 @@
--- interfaces/IERC5313.sol 2023-08-09 11:45:05 --- interfaces/IERC5313.sol 2023-08-11 20:33:54
+++ interfaces/IERC5313.sol 2023-08-11 12:22:17 +++ interfaces/IERC5313.sol 2023-08-13 09:56:16
@@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC5313.sol) // OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC5313.sol)

@ -1,5 +1,5 @@
--- interfaces/draft-IERC6093.sol 2023-08-09 11:45:05 --- interfaces/draft-IERC6093.sol 2023-08-11 20:33:54
+++ interfaces/draft-IERC6093.sol 2023-08-11 12:22:17 +++ interfaces/draft-IERC6093.sol 2023-08-13 09:56:16
@@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
-pragma solidity ^0.8.20; -pragma solidity ^0.8.20;

@ -0,0 +1,11 @@
--- proxy/utils/Initializable.sol 2023-08-11 20:33:54
+++ proxy/utils/Initializable.sol 2023-08-13 09:56:19
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (proxy/utils/Initializable.sol)
-pragma solidity ^0.8.20;
+pragma solidity ^0.8.19;
/**
* @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed

@ -1,5 +1,5 @@
--- security/Pausable.sol 2023-08-10 21:54:54 --- security/Pausable.sol 2023-08-11 20:33:54
+++ security/Pausable.sol 2023-08-11 12:22:17 +++ security/Pausable.sol 2023-08-13 09:56:16
@@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol) // OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol)

@ -1,5 +1,5 @@
--- token/ERC20/ERC20.sol 2023-08-09 11:45:05 --- token/ERC20/ERC20.sol 2023-08-11 20:33:54
+++ token/ERC20/ERC20.sol 2023-08-11 13:37:08 +++ token/ERC20/ERC20.sol 2023-08-13 09:56:16
@@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol) // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol)

@ -1,5 +1,5 @@
--- token/ERC20/IERC20.sol 2023-08-09 11:45:05 --- token/ERC20/IERC20.sol 2023-08-11 20:33:54
+++ token/ERC20/IERC20.sol 2023-08-11 12:22:17 +++ token/ERC20/IERC20.sol 2023-08-13 09:56:16
@@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol) // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)

@ -1,5 +1,5 @@
--- token/ERC20/extensions/ERC20FlashMint.sol 2023-08-09 11:45:05 --- token/ERC20/extensions/ERC20FlashMint.sol 2023-08-11 20:33:54
+++ token/ERC20/extensions/ERC20FlashMint.sol 2023-08-11 13:36:55 +++ token/ERC20/extensions/ERC20FlashMint.sol 2023-08-13 09:56:16
@@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/extensions/ERC20FlashMint.sol) // OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/extensions/ERC20FlashMint.sol)

@ -1,5 +1,5 @@
--- token/ERC20/extensions/ERC20Permit.sol 2023-08-09 11:45:05 --- token/ERC20/extensions/ERC20Permit.sol 2023-08-11 20:33:54
+++ token/ERC20/extensions/ERC20Permit.sol 2023-08-11 12:22:17 +++ token/ERC20/extensions/ERC20Permit.sol 2023-08-13 09:56:16
@@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/extensions/ERC20Permit.sol) // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/extensions/ERC20Permit.sol)

@ -1,5 +1,5 @@
--- token/ERC20/extensions/IERC20Metadata.sol 2023-08-09 11:45:05 --- token/ERC20/extensions/IERC20Metadata.sol 2023-08-11 20:33:54
+++ token/ERC20/extensions/IERC20Metadata.sol 2023-08-11 12:22:17 +++ token/ERC20/extensions/IERC20Metadata.sol 2023-08-13 09:56:16
@@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol) // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

@ -1,5 +1,5 @@
--- token/ERC20/extensions/IERC20Permit.sol 2023-08-11 12:19:57 --- token/ERC20/extensions/IERC20Permit.sol 2023-08-11 20:33:54
+++ token/ERC20/extensions/IERC20Permit.sol 2023-08-11 12:22:17 +++ token/ERC20/extensions/IERC20Permit.sol 2023-08-13 09:56:16
@@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/extensions/IERC20Permit.sol) // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/extensions/IERC20Permit.sol)

@ -1,7 +1,7 @@
--- token/ERC721/ERC721.sol 2023-08-10 16:45:36 --- token/ERC721/ERC721.sol 2023-08-11 20:33:54
+++ token/ERC721/ERC721.sol 2023-08-11 12:22:17 +++ token/ERC721/ERC721.sol 2023-08-13 09:56:16
@@ -208,6 +208,11 @@ @@ -214,6 +214,11 @@
return _owners[tokenId]; }
} }
+ // FV + // FV
@ -10,5 +10,5 @@
+ } + }
+ +
/** /**
* @dev Returns whether `tokenId` exists. * @dev Unsafe write access to the balances, used by extensions that "mint" tokens using an {ownerOf} override.
* *

@ -1,5 +1,5 @@
--- utils/Context.sol 2023-08-10 21:54:56 --- utils/Context.sol 2023-08-11 20:33:54
+++ utils/Context.sol 2023-08-11 12:22:17 +++ utils/Context.sol 2023-08-13 09:56:16
@@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol) // OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

@ -1,5 +1,5 @@
--- utils/Nonces.sol 2023-08-09 11:45:05 --- utils/Nonces.sol 2023-08-11 20:33:54
+++ utils/Nonces.sol 2023-08-11 12:22:17 +++ utils/Nonces.sol 2023-08-13 09:56:16
@@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
-pragma solidity ^0.8.20; -pragma solidity ^0.8.20;

@ -1,5 +1,5 @@
--- utils/ShortStrings.sol 2023-08-09 11:45:05 --- utils/ShortStrings.sol 2023-08-11 20:33:54
+++ utils/ShortStrings.sol 2023-08-11 12:22:17 +++ utils/ShortStrings.sol 2023-08-13 09:56:16
@@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (utils/ShortStrings.sol) // OpenZeppelin Contracts (last updated v4.9.0) (utils/ShortStrings.sol)

@ -1,5 +1,5 @@
--- utils/StorageSlot.sol 2023-08-09 11:45:05 --- utils/StorageSlot.sol 2023-08-11 20:33:54
+++ utils/StorageSlot.sol 2023-08-11 12:22:17 +++ utils/StorageSlot.sol 2023-08-13 09:56:16
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
// OpenZeppelin Contracts (last updated v4.9.0) (utils/StorageSlot.sol) // OpenZeppelin Contracts (last updated v4.9.0) (utils/StorageSlot.sol)
// This file was procedurally generated from scripts/generate/templates/StorageSlot.js. // This file was procedurally generated from scripts/generate/templates/StorageSlot.js.

@ -1,5 +1,5 @@
--- utils/Strings.sol 2023-08-09 11:45:05 --- utils/Strings.sol 2023-08-11 20:33:54
+++ utils/Strings.sol 2023-08-11 12:22:44 +++ utils/Strings.sol 2023-08-13 09:56:16
@@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (utils/Strings.sol) // OpenZeppelin Contracts (last updated v4.9.0) (utils/Strings.sol)

@ -1,5 +1,5 @@
--- utils/cryptography/ECDSA.sol 2023-08-09 11:45:05 --- utils/cryptography/ECDSA.sol 2023-08-11 20:33:54
+++ utils/cryptography/ECDSA.sol 2023-08-11 12:22:17 +++ utils/cryptography/ECDSA.sol 2023-08-13 09:56:16
@@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (utils/cryptography/ECDSA.sol) // OpenZeppelin Contracts (last updated v4.9.0) (utils/cryptography/ECDSA.sol)

@ -1,5 +1,5 @@
--- utils/cryptography/EIP712.sol 2023-08-09 11:45:05 --- utils/cryptography/EIP712.sol 2023-08-11 20:33:54
+++ utils/cryptography/EIP712.sol 2023-08-11 12:22:17 +++ utils/cryptography/EIP712.sol 2023-08-13 09:56:16
@@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (utils/cryptography/EIP712.sol) // OpenZeppelin Contracts (last updated v4.9.0) (utils/cryptography/EIP712.sol)

@ -1,5 +1,5 @@
--- utils/cryptography/MessageHashUtils.sol 2023-08-09 11:45:05 --- utils/cryptography/MessageHashUtils.sol 2023-08-11 20:33:54
+++ utils/cryptography/MessageHashUtils.sol 2023-08-11 12:22:17 +++ utils/cryptography/MessageHashUtils.sol 2023-08-13 09:56:16
@@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT

@ -1,5 +1,5 @@
--- utils/introspection/ERC165.sol 2023-08-10 22:02:24 --- utils/introspection/ERC165.sol 2023-08-11 20:33:54
+++ utils/introspection/ERC165.sol 2023-08-11 12:22:17 +++ utils/introspection/ERC165.sol 2023-08-13 09:56:16
@@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol) // OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)

@ -1,5 +1,5 @@
--- utils/introspection/IERC165.sol 2023-08-09 11:45:05 --- utils/introspection/IERC165.sol 2023-08-11 20:33:54
+++ utils/introspection/IERC165.sol 2023-08-11 12:22:17 +++ utils/introspection/IERC165.sol 2023-08-13 09:56:16
@@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol) // OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)

@ -1,5 +1,5 @@
--- utils/math/Math.sol 2023-08-09 11:45:05 --- utils/math/Math.sol 2023-08-11 20:33:54
+++ utils/math/Math.sol 2023-08-11 12:22:17 +++ utils/math/Math.sol 2023-08-13 09:56:16
@@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (utils/math/Math.sol) // OpenZeppelin Contracts (last updated v4.9.0) (utils/math/Math.sol)

@ -1,5 +1,5 @@
--- utils/math/SafeCast.sol 2023-08-09 11:45:05 --- utils/math/SafeCast.sol 2023-08-11 20:33:54
+++ utils/math/SafeCast.sol 2023-08-11 12:22:17 +++ utils/math/SafeCast.sol 2023-08-13 09:56:16
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SafeCast.sol) // OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SafeCast.sol)
// This file was procedurally generated from scripts/generate/templates/SafeCast.js. // This file was procedurally generated from scripts/generate/templates/SafeCast.js.

@ -1,5 +1,5 @@
--- utils/math/SignedMath.sol 2023-08-09 11:45:05 --- utils/math/SignedMath.sol 2023-08-11 20:33:54
+++ utils/math/SignedMath.sol 2023-08-11 12:22:51 +++ utils/math/SignedMath.sol 2023-08-13 09:56:16
@@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SignedMath.sol) // OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SignedMath.sol)

@ -1,5 +1,5 @@
--- utils/structs/DoubleEndedQueue.sol 2023-08-09 11:45:05 --- utils/structs/DoubleEndedQueue.sol 2023-08-11 20:33:54
+++ utils/structs/DoubleEndedQueue.sol 2023-08-11 12:22:17 +++ utils/structs/DoubleEndedQueue.sol 2023-08-13 09:56:16
@@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (utils/structs/DoubleEndedQueue.sol) // OpenZeppelin Contracts (last updated v4.9.0) (utils/structs/DoubleEndedQueue.sol)

@ -1,19 +1,19 @@
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
pragma solidity ^0.8.20; pragma solidity ^0.8.19;
import "../patched/proxy/utils/Initializable.sol"; import {Initializable} from "../patched/proxy/utils/Initializable.sol";
contract InitializableHarness is Initializable { contract InitializableHarness is Initializable {
function initialize() public initializer {} function initialize() public initializer {}
function reinitialize(uint8 n) public reinitializer(n) {} function reinitialize(uint64 n) public reinitializer(n) {}
function disable() public { _disableInitializers(); } function disable() public { _disableInitializers(); }
function nested_init_init() public initializer { initialize(); } function nested_init_init() public initializer { initialize(); }
function nested_init_reinit(uint8 m) public initializer { reinitialize(m); } function nested_init_reinit(uint64 m) public initializer { reinitialize(m); }
function nested_reinit_init(uint8 n) public reinitializer(n) { initialize(); } function nested_reinit_init(uint64 n) public reinitializer(n) { initialize(); }
function nested_reinit_reinit(uint8 n, uint8 m) public reinitializer(n) { reinitialize(m); } function nested_reinit_reinit(uint64 n, uint64 m) public reinitializer(n) { reinitialize(m); }
function version() public view returns (uint8) { function version() public view returns (uint64) {
return _getInitializedVersion(); return _getInitializedVersion();
} }

@ -1,19 +1,19 @@
import "helpers/helpers.spec" import "helpers/helpers.spec";
methods { methods {
// initialize, reinitialize, disable // initialize, reinitialize, disable
initialize() envfree function initialize() external envfree;
reinitialize(uint8) envfree function reinitialize(uint64) external envfree;
disable() envfree function disable() external envfree;
nested_init_init() envfree function nested_init_init() external envfree;
nested_init_reinit(uint8) envfree function nested_init_reinit(uint64) external envfree;
nested_reinit_init(uint8) envfree function nested_reinit_init(uint64) external envfree;
nested_reinit_reinit(uint8,uint8) envfree function nested_reinit_reinit(uint64,uint64) external envfree;
// view // view
version() returns uint8 envfree function version() external returns uint64 envfree;
initializing() returns bool envfree function initializing() external returns bool envfree;
} }
/* /*
@ -23,7 +23,7 @@ methods {
*/ */
definition isUninitialized() returns bool = version() == 0; definition isUninitialized() returns bool = version() == 0;
definition isInitialized() returns bool = version() > 0; definition isInitialized() returns bool = version() > 0;
definition isDisabled() returns bool = version() == 255; definition isDisabled() returns bool = version() == max_uint64;
/* /*
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
@ -31,7 +31,7 @@ definition isDisabled() returns bool = version() == 255;
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ └─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
*/ */
invariant notInitializing() invariant notInitializing()
!initializing() !initializing();
/* /*
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
@ -39,7 +39,7 @@ invariant notInitializing()
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ └─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
*/ */
rule increasingVersion(env e) { rule increasingVersion(env e) {
uint8 versionBefore = version(); uint64 versionBefore = version();
bool disabledBefore = isDisabled(); bool disabledBefore = isDisabled();
method f; calldataarg args; method f; calldataarg args;
@ -83,7 +83,7 @@ rule cannotInitializeOnceDisabled() {
rule cannotReinitializeOnceDisabled() { rule cannotReinitializeOnceDisabled() {
require isDisabled(); require isDisabled();
uint8 n; uint64 n;
reinitialize@withrevert(n); reinitialize@withrevert(n);
assert lastReverted, "contract is disabled"; assert lastReverted, "contract is disabled";
@ -99,17 +99,17 @@ rule cannotNestInitializers_init_init() {
assert lastReverted, "nested initializers"; assert lastReverted, "nested initializers";
} }
rule cannotNestInitializers_init_reinit(uint8 m) { rule cannotNestInitializers_init_reinit(uint64 m) {
nested_init_reinit@withrevert(m); nested_init_reinit@withrevert(m);
assert lastReverted, "nested initializers"; assert lastReverted, "nested initializers";
} }
rule cannotNestInitializers_reinit_init(uint8 n) { rule cannotNestInitializers_reinit_init(uint64 n) {
nested_reinit_init@withrevert(n); nested_reinit_init@withrevert(n);
assert lastReverted, "nested initializers"; assert lastReverted, "nested initializers";
} }
rule cannotNestInitializers_reinit_reinit(uint8 n, uint8 m) { rule cannotNestInitializers_reinit_reinit(uint64 n, uint64 m) {
nested_reinit_reinit@withrevert(n, m); nested_reinit_reinit@withrevert(n, m);
assert lastReverted, "nested initializers"; assert lastReverted, "nested initializers";
} }
@ -139,9 +139,9 @@ rule initializeEffects() {
rule reinitializeEffects() { rule reinitializeEffects() {
requireInvariant notInitializing(); requireInvariant notInitializing();
uint8 versionBefore = version(); uint64 versionBefore = version();
uint8 n; uint64 n;
reinitialize@withrevert(n); reinitialize@withrevert(n);
bool success = !lastReverted; bool success = !lastReverted;

Loading…
Cancel
Save