@@ -17,17 +17,18 @@ contract ERC20LockUpStakingFactory is Ownable, ILockUpFactory {
17
17
using SafeERC20 for IERC20 ;
18
18
19
19
address [] public stakingPools;
20
- Request [] public requests;
20
+ LockUpRequest [] public requests;
21
21
mapping (uint256 id = > address pool ) public poolById;
22
22
23
23
constructor () Ownable (msg .sender ) {}
24
24
25
25
/// @notice Function allows users to deploy the LockUp staking pool with specified parameters
26
26
function deploy (uint256 id ) public returns (address newPoolAddress ) {
27
27
if (requests.length < id) revert InvalidId ();
28
- Request memory req = requests[id];
29
- if (req.requestStatus != Status.APPROVED) revert InvalidRequestStatus ();
30
- if (msg .sender != req.deployer) revert InvalidCaller ();
28
+ LockUpRequest memory req = requests[id];
29
+ if (req.info.requestStatus != Status.APPROVED)
30
+ revert InvalidRequestStatus ();
31
+ if (msg .sender != req.info.deployer) revert InvalidCaller ();
31
32
newPoolAddress = address (
32
33
new ERC20LockUpPool {
33
34
salt: keccak256 (
@@ -50,7 +51,7 @@ contract ERC20LockUpStakingFactory is Ownable, ILockUpFactory {
50
51
)
51
52
);
52
53
stakingPools.push (newPoolAddress);
53
- requests[id].requestStatus = Status.DEPLOYED;
54
+ requests[id].info. requestStatus = Status.DEPLOYED;
54
55
poolById[id] = newPoolAddress;
55
56
uint256 rewardAmount = (req.data.poolEndTime - req.data.poolStartTime) *
56
57
req.data.rewardPerSecond;
@@ -65,14 +66,20 @@ contract ERC20LockUpStakingFactory is Ownable, ILockUpFactory {
65
66
emit StakingPoolDeployed (newPoolAddress, id);
66
67
}
67
68
68
- function requestDeployment (DeploymentData calldata data ) external {
69
+ function requestDeployment (
70
+ bytes32 ipfsHash ,
71
+ DeploymentData calldata data
72
+ ) external {
69
73
if (data.stakeToken == address (0 ) || data.rewardToken == address (0 ))
70
74
revert InvalidTokenAddress ();
71
75
if (data.rewardPerSecond == 0 ) revert InvalidRewardRate ();
72
76
requests.push (
73
- Request ({
74
- deployer: msg .sender ,
75
- requestStatus: Status.CREATED,
77
+ LockUpRequest ({
78
+ info: RequestInfo ({
79
+ ipfsHash: ipfsHash,
80
+ deployer: msg .sender ,
81
+ requestStatus: Status.CREATED
82
+ }),
76
83
data: data
77
84
})
78
85
);
@@ -86,33 +93,33 @@ contract ERC20LockUpStakingFactory is Ownable, ILockUpFactory {
86
93
87
94
function approveRequest (uint256 id ) external onlyOwner {
88
95
if (requests.length < id) revert InvalidId ();
89
- Request storage req = requests[id];
90
- if (req.requestStatus != Status.CREATED) revert InvalidRequestStatus ();
91
- req.requestStatus = Status.APPROVED;
92
- emit RequestStatusChanged (id, req.requestStatus);
96
+ LockUpRequest storage req = requests[id];
97
+ if (req.info. requestStatus != Status.CREATED) revert InvalidRequestStatus ();
98
+ req.info. requestStatus = Status.APPROVED;
99
+ emit RequestStatusChanged (id, req.info. requestStatus);
93
100
}
94
101
95
102
function denyRequest (uint256 id ) external onlyOwner {
96
103
if (requests.length < id) revert InvalidId ();
97
- Request storage req = requests[id];
98
- if (req.requestStatus != Status.CREATED) revert InvalidRequestStatus ();
99
- req.requestStatus = Status.DENIED;
100
- emit RequestStatusChanged (id, req.requestStatus);
104
+ LockUpRequest storage req = requests[id];
105
+ if (req.info. requestStatus != Status.CREATED) revert InvalidRequestStatus ();
106
+ req.info. requestStatus = Status.DENIED;
107
+ emit RequestStatusChanged (id, req.info. requestStatus);
101
108
}
102
109
103
110
function cancelRequest (uint256 id ) external {
104
111
if (requests.length < id) revert InvalidId ();
105
- Request storage req = requests[id];
106
- if (msg .sender != req.deployer) revert InvalidCaller ();
112
+ LockUpRequest storage req = requests[id];
113
+ if (msg .sender != req.info. deployer) revert InvalidCaller ();
107
114
if (
108
- req.requestStatus != Status.CREATED &&
109
- req.requestStatus != Status.APPROVED
115
+ req.info. requestStatus != Status.CREATED &&
116
+ req.info. requestStatus != Status.APPROVED
110
117
) revert InvalidRequestStatus ();
111
- req.requestStatus = Status.CANCELED;
112
- emit RequestStatusChanged (id, req.requestStatus);
118
+ req.info. requestStatus = Status.CANCELED;
119
+ emit RequestStatusChanged (id, req.info. requestStatus);
113
120
}
114
121
115
- function getRequests () external view returns (Request [] memory reqs ) {
122
+ function getRequests () external view returns (LockUpRequest [] memory reqs ) {
116
123
reqs = requests;
117
124
}
118
125
0 commit comments