Skip to content

Commit bad2aea

Browse files
committed
changed public to external in the initializer to help with upgradability
1 parent 889df7f commit bad2aea

File tree

6 files changed

+48
-9
lines changed

6 files changed

+48
-9
lines changed

contracts/XXXToken.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ contract XXXToken is Initializable,
5353
* @dev Initializes the contract replacing the constructor for upgradeable contracts
5454
* Sets up roles and configures token parameters
5555
*/
56-
function initialize() public initializer {
56+
function initialize() external initializer {
5757
// Initialize ERC20 with name and symbol
5858
__ERC20_init("XXX", "XXX");
5959

contracts/XXXTokenVault.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ contract TokenVault is Initializable,
7979
* @dev Initializes the contract replacing the constructor for upgradeable contracts
8080
* @param _ttnToken Address of the XXXToken contract
8181
*/
82-
function initialize(address _ttnToken) public initializer {
82+
function initialize(address _ttnToken) external initializer {
8383
if (_ttnToken == address(0)) revert ZeroAddress("token");
8484
__AccessControl_init();
8585
__UUPSUpgradeable_init();

contracts/XXXVestingManager.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ contract VestingManager is Initializable,
112112
* @param _ttnToken Address of the XXXToken contract
113113
* @param _tokenVault Address of the TokenVault contract
114114
*/
115-
function initialize(address _ttnToken, address _tokenVault) public initializer {
115+
function initialize(address _ttnToken, address _tokenVault) external initializer {
116116
if (_ttnToken == address(0)) revert ZeroAddress("token");
117117
if (_tokenVault == address(0)) revert ZeroAddress("vault");
118118
__AccessControl_init();

contracts/upgrades/XXXTokenV2.sol

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,22 @@ contract XXXTokenV2 is XXXToken {
2424
/// @notice The version number of this contract implementation
2525
uint256 public version;
2626

27+
28+
2729
/**
28-
* @dev Initializes the V2 contract with a version number.
29-
* This function is called after the upgrade to set up the new state variables.
30-
* The reinitializer modifier ensures this can only be called once after the upgrade.
30+
* @dev Initializes V2 functionality
31+
* This is called during the upgrade process
32+
* @custom:oz-upgrades-validate-as-initializer
3133
*/
32-
function initializeV2() public reinitializer(2) {
34+
function initializeV2() external reinitializer(2) {
35+
// Initialize parent contracts
36+
__ERC20_init("XXX Token", "XXX");
37+
__ERC20Capped_init(1000000000 * 10**18); // 1 billion tokens
38+
__Ownable_init(msg.sender);
39+
__AccessControl_init();
40+
__Pausable_init();
41+
__UUPSUpgradeable_init();
42+
3343
version = 2;
3444
}
3545
}

contracts/upgrades/XXXTokenVaultV2.sol

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,34 @@
1010
pragma solidity ^0.8.24;
1111

1212
import "../XXXTokenVault.sol";
13+
import "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol";
14+
import "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";
15+
import "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol";
16+
import "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";
1317

1418
contract XXXTokenVaultV2 is TokenVault {
1519
// Version tracking for upgrade testing
1620
uint256 public version;
1721
// Additional counter for V2 allocations
1822
uint256 public totalAllocatedV2;
23+
24+
25+
1926

2027
/**
2128
* @dev Initializes V2 functionality
2229
* This is called during the upgrade process
30+
* @custom:oz-upgrades-validate-as-initializer
2331
*/
24-
function initializeV2() public reinitializer(2) {
32+
function initializeV2() external reinitializer(2) {
33+
// Initialize parent contracts
34+
__ReentrancyGuard_init();
35+
__AccessControl_init();
36+
__Pausable_init();
37+
__UUPSUpgradeable_init();
38+
39+
40+
2541
version = 2;
2642
}
2743

contracts/upgrades/XXXVestingManagerV2.sol

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@
1010
pragma solidity ^0.8.24;
1111

1212
import "../XXXVestingManager.sol";
13+
import "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol";
14+
import "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";
15+
import "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol";
16+
import "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";
17+
1318

1419
contract XXXVestingManagerV2 is VestingManager {
1520
// Version tracking for upgrade testing
@@ -20,8 +25,16 @@ contract XXXVestingManagerV2 is VestingManager {
2025
/**
2126
* @dev Initializes V2 functionality
2227
* This is called during the upgrade process
28+
* @custom:oz-upgrades-validate-as-initializer
2329
*/
24-
function initializeV2() public reinitializer(2) {
30+
function initializeV2() external reinitializer(2) {
31+
// Initialize parent contracts
32+
__ReentrancyGuard_init();
33+
__AccessControl_init();
34+
__Pausable_init();
35+
__UUPSUpgradeable_init();
36+
37+
// Set version to 2
2538
version = 2;
2639
}
2740

0 commit comments

Comments
 (0)