Finish Initializable
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
--- access/AccessControl.sol 2023-08-10 22:02:18
|
||||
+++ access/AccessControl.sol 2023-08-11 12:22:17
|
||||
--- access/AccessControl.sol 2023-08-11 20:33:54
|
||||
+++ access/AccessControl.sol 2023-08-13 09:56:16
|
||||
@@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
// 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 12:22:17
|
||||
--- access/IAccessControl.sol 2023-08-11 20:33:54
|
||||
+++ access/IAccessControl.sol 2023-08-13 09:56:16
|
||||
@@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
// 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 12:22:17
|
||||
--- access/Ownable.sol 2023-08-11 20:33:54
|
||||
+++ access/Ownable.sol 2023-08-13 09:56:16
|
||||
@@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
// 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 12:22:17
|
||||
--- access/Ownable2Step.sol 2023-08-11 20:33:54
|
||||
+++ access/Ownable2Step.sol 2023-08-13 09:56:16
|
||||
@@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
// 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 12:22:17
|
||||
--- access/extensions/AccessControlDefaultAdminRules.sol 2023-08-11 20:33:54
|
||||
+++ access/extensions/AccessControlDefaultAdminRules.sol 2023-08-13 09:56:16
|
||||
@@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
// 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 12:22:17
|
||||
--- access/extensions/IAccessControlDefaultAdminRules.sol 2023-08-11 20:33:54
|
||||
+++ access/extensions/IAccessControlDefaultAdminRules.sol 2023-08-13 09:56:16
|
||||
@@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
// 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 13:36:59
|
||||
--- interfaces/IERC3156FlashBorrower.sol 2023-08-11 20:33:54
|
||||
+++ interfaces/IERC3156FlashBorrower.sol 2023-08-13 09:56:16
|
||||
@@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
// 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 13:37:04
|
||||
--- interfaces/IERC3156FlashLender.sol 2023-08-11 20:33:54
|
||||
+++ interfaces/IERC3156FlashLender.sol 2023-08-13 09:56:16
|
||||
@@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
// 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 12:22:17
|
||||
--- interfaces/IERC5267.sol 2023-08-11 20:33:54
|
||||
+++ interfaces/IERC5267.sol 2023-08-13 09:56:16
|
||||
@@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
// 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 12:22:17
|
||||
--- interfaces/IERC5313.sol 2023-08-11 20:33:54
|
||||
+++ interfaces/IERC5313.sol 2023-08-13 09:56:16
|
||||
@@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
// 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 12:22:17
|
||||
--- interfaces/draft-IERC6093.sol 2023-08-11 20:33:54
|
||||
+++ interfaces/draft-IERC6093.sol 2023-08-13 09:56:16
|
||||
@@ -1,5 +1,5 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
-pragma solidity ^0.8.20;
|
||||
|
||||
11
certora/diff/proxy_utils_Initializable.sol.patch
Normal file
11
certora/diff/proxy_utils_Initializable.sol.patch
Normal file
@ -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 12:22:17
|
||||
--- security/Pausable.sol 2023-08-11 20:33:54
|
||||
+++ security/Pausable.sol 2023-08-13 09:56:16
|
||||
@@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
// 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 13:37:08
|
||||
--- token/ERC20/ERC20.sol 2023-08-11 20:33:54
|
||||
+++ token/ERC20/ERC20.sol 2023-08-13 09:56:16
|
||||
@@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
// 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 12:22:17
|
||||
--- token/ERC20/IERC20.sol 2023-08-11 20:33:54
|
||||
+++ token/ERC20/IERC20.sol 2023-08-13 09:56:16
|
||||
@@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
// 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 13:36:55
|
||||
--- token/ERC20/extensions/ERC20FlashMint.sol 2023-08-11 20:33:54
|
||||
+++ token/ERC20/extensions/ERC20FlashMint.sol 2023-08-13 09:56:16
|
||||
@@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
// 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 12:22:17
|
||||
--- token/ERC20/extensions/ERC20Permit.sol 2023-08-11 20:33:54
|
||||
+++ token/ERC20/extensions/ERC20Permit.sol 2023-08-13 09:56:16
|
||||
@@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
// 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 12:22:17
|
||||
--- token/ERC20/extensions/IERC20Metadata.sol 2023-08-11 20:33:54
|
||||
+++ token/ERC20/extensions/IERC20Metadata.sol 2023-08-13 09:56:16
|
||||
@@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
// 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 12:22:17
|
||||
--- token/ERC20/extensions/IERC20Permit.sol 2023-08-11 20:33:54
|
||||
+++ token/ERC20/extensions/IERC20Permit.sol 2023-08-13 09:56:16
|
||||
@@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
// 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 12:22:17
|
||||
@@ -208,6 +208,11 @@
|
||||
return _owners[tokenId];
|
||||
--- token/ERC721/ERC721.sol 2023-08-11 20:33:54
|
||||
+++ token/ERC721/ERC721.sol 2023-08-13 09:56:16
|
||||
@@ -214,6 +214,11 @@
|
||||
}
|
||||
}
|
||||
|
||||
+ // 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 12:22:17
|
||||
--- utils/Context.sol 2023-08-11 20:33:54
|
||||
+++ utils/Context.sol 2023-08-13 09:56:16
|
||||
@@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
// 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 12:22:17
|
||||
--- utils/Nonces.sol 2023-08-11 20:33:54
|
||||
+++ utils/Nonces.sol 2023-08-13 09:56:16
|
||||
@@ -1,5 +1,5 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
-pragma solidity ^0.8.20;
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
--- utils/ShortStrings.sol 2023-08-09 11:45:05
|
||||
+++ utils/ShortStrings.sol 2023-08-11 12:22:17
|
||||
--- utils/ShortStrings.sol 2023-08-11 20:33:54
|
||||
+++ utils/ShortStrings.sol 2023-08-13 09:56:16
|
||||
@@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
// 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 12:22:17
|
||||
--- utils/StorageSlot.sol 2023-08-11 20:33:54
|
||||
+++ utils/StorageSlot.sol 2023-08-13 09:56:16
|
||||
@@ -2,7 +2,7 @@
|
||||
// OpenZeppelin Contracts (last updated v4.9.0) (utils/StorageSlot.sol)
|
||||
// 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 12:22:44
|
||||
--- utils/Strings.sol 2023-08-11 20:33:54
|
||||
+++ utils/Strings.sol 2023-08-13 09:56:16
|
||||
@@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
// 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 12:22:17
|
||||
--- utils/cryptography/ECDSA.sol 2023-08-11 20:33:54
|
||||
+++ utils/cryptography/ECDSA.sol 2023-08-13 09:56:16
|
||||
@@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
// 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 12:22:17
|
||||
--- utils/cryptography/EIP712.sol 2023-08-11 20:33:54
|
||||
+++ utils/cryptography/EIP712.sol 2023-08-13 09:56:16
|
||||
@@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
// 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 12:22:17
|
||||
--- utils/cryptography/MessageHashUtils.sol 2023-08-11 20:33:54
|
||||
+++ utils/cryptography/MessageHashUtils.sol 2023-08-13 09:56:16
|
||||
@@ -1,6 +1,6 @@
|
||||
// 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 12:22:17
|
||||
--- utils/introspection/ERC165.sol 2023-08-11 20:33:54
|
||||
+++ utils/introspection/ERC165.sol 2023-08-13 09:56:16
|
||||
@@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
// 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 12:22:17
|
||||
--- utils/introspection/IERC165.sol 2023-08-11 20:33:54
|
||||
+++ utils/introspection/IERC165.sol 2023-08-13 09:56:16
|
||||
@@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
// 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 12:22:17
|
||||
--- utils/math/Math.sol 2023-08-11 20:33:54
|
||||
+++ utils/math/Math.sol 2023-08-13 09:56:16
|
||||
@@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
// 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 12:22:17
|
||||
--- utils/math/SafeCast.sol 2023-08-11 20:33:54
|
||||
+++ utils/math/SafeCast.sol 2023-08-13 09:56:16
|
||||
@@ -2,7 +2,7 @@
|
||||
// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SafeCast.sol)
|
||||
// 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 12:22:51
|
||||
--- utils/math/SignedMath.sol 2023-08-11 20:33:54
|
||||
+++ utils/math/SignedMath.sol 2023-08-13 09:56:16
|
||||
@@ -1,7 +1,7 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
// 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 12:22:17
|
||||
--- utils/structs/DoubleEndedQueue.sol 2023-08-11 20:33:54
|
||||
+++ utils/structs/DoubleEndedQueue.sol 2023-08-13 09:56:16
|
||||
@@ -1,6 +1,6 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
// OpenZeppelin Contracts (last updated v4.9.0) (utils/structs/DoubleEndedQueue.sol)
|
||||
|
||||
@ -1,19 +1,19 @@
|
||||
// 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 {
|
||||
function initialize() public initializer {}
|
||||
function reinitialize(uint8 n) public reinitializer(n) {}
|
||||
function reinitialize(uint64 n) public reinitializer(n) {}
|
||||
function disable() public { _disableInitializers(); }
|
||||
|
||||
function nested_init_init() public initializer { initialize(); }
|
||||
function nested_init_reinit(uint8 m) public initializer { reinitialize(m); }
|
||||
function nested_reinit_init(uint8 n) public reinitializer(n) { initialize(); }
|
||||
function nested_reinit_reinit(uint8 n, uint8 m) public reinitializer(n) { reinitialize(m); }
|
||||
function nested_init_reinit(uint64 m) public initializer { reinitialize(m); }
|
||||
function nested_reinit_init(uint64 n) public reinitializer(n) { initialize(); }
|
||||
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();
|
||||
}
|
||||
|
||||
|
||||
@ -1,19 +1,19 @@
|
||||
import "helpers/helpers.spec"
|
||||
import "helpers/helpers.spec";
|
||||
|
||||
methods {
|
||||
// initialize, reinitialize, disable
|
||||
initialize() envfree
|
||||
reinitialize(uint8) envfree
|
||||
disable() envfree
|
||||
function initialize() external envfree;
|
||||
function reinitialize(uint64) external envfree;
|
||||
function disable() external envfree;
|
||||
|
||||
nested_init_init() envfree
|
||||
nested_init_reinit(uint8) envfree
|
||||
nested_reinit_init(uint8) envfree
|
||||
nested_reinit_reinit(uint8,uint8) envfree
|
||||
function nested_init_init() external envfree;
|
||||
function nested_init_reinit(uint64) external envfree;
|
||||
function nested_reinit_init(uint64) external envfree;
|
||||
function nested_reinit_reinit(uint64,uint64) external envfree;
|
||||
|
||||
// view
|
||||
version() returns uint8 envfree
|
||||
initializing() returns bool envfree
|
||||
function version() external returns uint64 envfree;
|
||||
function initializing() external returns bool envfree;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -23,7 +23,7 @@ methods {
|
||||
*/
|
||||
definition isUninitialized() 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()
|
||||
!initializing()
|
||||
!initializing();
|
||||
|
||||
/*
|
||||
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
|
||||
@ -39,7 +39,7 @@ invariant notInitializing()
|
||||
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
|
||||
*/
|
||||
rule increasingVersion(env e) {
|
||||
uint8 versionBefore = version();
|
||||
uint64 versionBefore = version();
|
||||
bool disabledBefore = isDisabled();
|
||||
|
||||
method f; calldataarg args;
|
||||
@ -83,7 +83,7 @@ rule cannotInitializeOnceDisabled() {
|
||||
rule cannotReinitializeOnceDisabled() {
|
||||
require isDisabled();
|
||||
|
||||
uint8 n;
|
||||
uint64 n;
|
||||
reinitialize@withrevert(n);
|
||||
|
||||
assert lastReverted, "contract is disabled";
|
||||
@ -99,17 +99,17 @@ rule cannotNestInitializers_init_init() {
|
||||
assert lastReverted, "nested initializers";
|
||||
}
|
||||
|
||||
rule cannotNestInitializers_init_reinit(uint8 m) {
|
||||
rule cannotNestInitializers_init_reinit(uint64 m) {
|
||||
nested_init_reinit@withrevert(m);
|
||||
assert lastReverted, "nested initializers";
|
||||
}
|
||||
|
||||
rule cannotNestInitializers_reinit_init(uint8 n) {
|
||||
rule cannotNestInitializers_reinit_init(uint64 n) {
|
||||
nested_reinit_init@withrevert(n);
|
||||
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);
|
||||
assert lastReverted, "nested initializers";
|
||||
}
|
||||
@ -139,9 +139,9 @@ rule initializeEffects() {
|
||||
rule reinitializeEffects() {
|
||||
requireInvariant notInitializing();
|
||||
|
||||
uint8 versionBefore = version();
|
||||
uint64 versionBefore = version();
|
||||
|
||||
uint8 n;
|
||||
uint64 n;
|
||||
reinitialize@withrevert(n);
|
||||
bool success = !lastReverted;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user