@@ -22,6 +22,7 @@ library StakeClaims {
22
22
* @param claims The mapping that stores stake claims by their ID
23
23
* @param claimsLists The mapping that stores linked lists of stake claims by service provider
24
24
* @param graphStaking The Horizon staking contract used to lock the tokens
25
+ * @param _dataService The address of the data service
25
26
* @param _delegationRatio The delegation ratio to use for the stake claim
26
27
* @param _serviceProvider The address of the service provider
27
28
* @param _tokens The amount of tokens to lock in the claim
@@ -32,6 +33,7 @@ library StakeClaims {
32
33
mapping (bytes32 => IDataServiceFees.StakeClaim) storage claims ,
33
34
mapping (address serviceProvider = > LinkedList.List list ) storage claimsLists ,
34
35
IHorizonStaking graphStaking ,
36
+ address _dataService ,
35
37
uint32 _delegationRatio ,
36
38
address _serviceProvider ,
37
39
uint256 _tokens ,
@@ -43,7 +45,7 @@ library StakeClaims {
43
45
LinkedList.List storage claimsList = claimsLists[_serviceProvider];
44
46
45
47
// Save item and add to list
46
- bytes32 claimId = _buildStakeClaimId (_serviceProvider, claimsList.nonce);
48
+ bytes32 claimId = _buildStakeClaimId (_dataService, _serviceProvider, claimsList.nonce);
47
49
claims[claimId] = IDataServiceFees.StakeClaim ({
48
50
tokens: _tokens,
49
51
createdAt: block .timestamp ,
@@ -121,11 +123,31 @@ library StakeClaims {
121
123
122
124
/**
123
125
* @notice Builds a stake claim ID
126
+ * @param dataService The address of the data service
124
127
* @param serviceProvider The address of the service provider
125
128
* @param nonce A nonce of the stake claim
126
129
* @return The stake claim ID
127
130
*/
128
- function _buildStakeClaimId (address serviceProvider , uint256 nonce ) internal view returns (bytes32 ) {
129
- return keccak256 (abi.encodePacked (address (this ), serviceProvider, nonce));
131
+ function buildStakeClaimId (
132
+ address dataService ,
133
+ address serviceProvider ,
134
+ uint256 nonce
135
+ ) public pure returns (bytes32 ) {
136
+ return _buildStakeClaimId (dataService, serviceProvider, nonce);
137
+ }
138
+
139
+ /**
140
+ * @notice Builds a stake claim ID
141
+ * @param _dataService The address of the data service
142
+ * @param _serviceProvider The address of the service provider
143
+ * @param _nonce A nonce of the stake claim
144
+ * @return The stake claim ID
145
+ */
146
+ function _buildStakeClaimId (
147
+ address _dataService ,
148
+ address _serviceProvider ,
149
+ uint256 _nonce
150
+ ) internal pure returns (bytes32 ) {
151
+ return keccak256 (abi.encodePacked (_dataService, _serviceProvider, _nonce));
130
152
}
131
153
}
0 commit comments