1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- // SPDX-License-Identifier: MIT
- pragma solidity ^0.8.2;
- import "../munged/proxy/utils/Initializable.sol";
- contract InitializableBasicHarness is Initializable {
- uint256 public val;
- uint256 public a;
- uint256 public b;
- modifier version1() {
- require(_initialized == 1);
- _;
- }
- modifier versionN(uint8 n) {
- require(_initialized == n);
- _;
- }
- function initialize(
- uint256 _val,
- uint256 _a,
- uint256 _b
- ) public initializer {
- a = _a;
- b = _b;
- val = _val;
- }
- function reinitialize(
- uint256 _val,
- uint256 _a,
- uint256 _b,
- uint8 n
- ) public reinitializer(n) {
- a = _a;
- b = _b;
- val = _val;
- }
- // Versioned return functions for testing
- function returnsV1() public view version1 returns (uint256) {
- return val;
- }
- function returnsVN(uint8 n) public view versionN(n) returns (uint256) {
- return val;
- }
- function returnsAV1() public view version1 returns (uint256) {
- return a;
- }
- function returnsAVN(uint8 n) public view versionN(n) returns (uint256) {
- return a;
- }
- function returnsBV1() public view version1 returns (uint256) {
- return b;
- }
- function returnsBVN(uint8 n) public view versionN(n) returns (uint256) {
- return b;
- }
- // Harness //
- function initialized() public view returns (uint8) {
- return _initialized;
- }
- function initializing() public view returns (bool) {
- return _initializing;
- }
- function thisIsContract() public view returns (bool) {
- return !Address.isContract(address(this));
- }
- }
|