@@ -22,6 +22,7 @@ library StakeClaims {
2222 * @param claims The mapping that stores stake claims by their ID
2323 * @param claimsLists The mapping that stores linked lists of stake claims by service provider
2424 * @param graphStaking The Horizon staking contract used to lock the tokens
25+ * @param _dataService The address of the data service
2526 * @param _delegationRatio The delegation ratio to use for the stake claim
2627 * @param _serviceProvider The address of the service provider
2728 * @param _tokens The amount of tokens to lock in the claim
@@ -32,6 +33,7 @@ library StakeClaims {
3233 mapping (bytes32 => IDataServiceFees.StakeClaim) storage claims ,
3334 mapping (address serviceProvider = > LinkedList.List list ) storage claimsLists ,
3435 IHorizonStaking graphStaking ,
36+ address _dataService ,
3537 uint32 _delegationRatio ,
3638 address _serviceProvider ,
3739 uint256 _tokens ,
@@ -43,7 +45,7 @@ library StakeClaims {
4345 LinkedList.List storage claimsList = claimsLists[_serviceProvider];
4446
4547 // Save item and add to list
46- bytes32 claimId = _buildStakeClaimId (_serviceProvider, claimsList.nonce);
48+ bytes32 claimId = _buildStakeClaimId (_dataService, _serviceProvider, claimsList.nonce);
4749 claims[claimId] = IDataServiceFees.StakeClaim ({
4850 tokens: _tokens,
4951 createdAt: block .timestamp ,
@@ -121,11 +123,31 @@ library StakeClaims {
121123
122124 /**
123125 * @notice Builds a stake claim ID
126+ * @param dataService The address of the data service
124127 * @param serviceProvider The address of the service provider
125128 * @param nonce A nonce of the stake claim
126129 * @return The stake claim ID
127130 */
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));
130152 }
131153}
0 commit comments