@@ -16,14 +16,14 @@ import { DataServiceFeesV1Storage } from "./DataServiceFeesStorage.sol";
16
16
* using a Horizon provision. See {IDataServiceFees} for more details.
17
17
* @dev This contract inherits from {DataService} which needs to be initialized, please see
18
18
* {DataService} for detailed instructions.
19
+ * @custom:security-contact Please email [email protected] if you find any
20
+ * bugs. We may have an active bug bounty program.
19
21
*/
20
22
abstract contract DataServiceFees is DataService , DataServiceFeesV1Storage , IDataServiceFees {
21
23
using ProvisionTracker for mapping (address => uint256 );
22
24
using LinkedList for LinkedList.List;
23
25
24
- /**
25
- * @notice See {IDataServiceFees-releaseStake}
26
- */
26
+ /// @inheritdoc IDataServiceFees
27
27
function releaseStake (uint256 numClaimsToRelease ) external virtual override {
28
28
_releaseStake (msg .sender , numClaimsToRelease);
29
29
}
@@ -42,7 +42,7 @@ abstract contract DataServiceFees is DataService, DataServiceFeesV1Storage, IDat
42
42
*/
43
43
function _lockStake (address _serviceProvider , uint256 _tokens , uint256 _unlockTimestamp ) internal {
44
44
require (_tokens != 0 , DataServiceFeesZeroTokens ());
45
- feesProvisionTracker.lock (_graphStaking (), _serviceProvider, _tokens, delegationRatio );
45
+ feesProvisionTracker.lock (_graphStaking (), _serviceProvider, _tokens, _delegationRatio );
46
46
47
47
LinkedList.List storage claimsList = claimsLists[_serviceProvider];
48
48
@@ -61,7 +61,11 @@ abstract contract DataServiceFees is DataService, DataServiceFeesV1Storage, IDat
61
61
}
62
62
63
63
/**
64
- * @notice See {IDataServiceFees-releaseStake}
64
+ * @notice Releases expired stake claims for a service provider.
65
+ * @dev This function can be overriden and/or disabled.
66
+ * @dev Emits a {StakeClaimsReleased} event, and a {StakeClaimReleased} event for each claim released.
67
+ * @param _serviceProvider The address of the service provider
68
+ * @param _numClaimsToRelease Amount of stake claims to process. If 0, all stake claims are processed.
65
69
*/
66
70
function _releaseStake (address _serviceProvider , uint256 _numClaimsToRelease ) internal {
67
71
LinkedList.List storage claimsList = claimsLists[_serviceProvider];
@@ -116,6 +120,7 @@ abstract contract DataServiceFees is DataService, DataServiceFeesV1Storage, IDat
116
120
/**
117
121
* @notice Gets the details of a stake claim
118
122
* @param _claimId The ID of the stake claim
123
+ * @return The stake claim details
119
124
*/
120
125
function _getStakeClaim (bytes32 _claimId ) private view returns (StakeClaim memory ) {
121
126
StakeClaim memory claim = claims[_claimId];
@@ -127,6 +132,7 @@ abstract contract DataServiceFees is DataService, DataServiceFeesV1Storage, IDat
127
132
* @notice Gets the next stake claim in the linked list
128
133
* @dev This function is used as a callback in the stake claims linked list traversal.
129
134
* @param _claimId The ID of the stake claim
135
+ * @return The next stake claim ID
130
136
*/
131
137
function _getNextStakeClaim (bytes32 _claimId ) private view returns (bytes32 ) {
132
138
return claims[_claimId].nextClaim;
@@ -136,6 +142,7 @@ abstract contract DataServiceFees is DataService, DataServiceFeesV1Storage, IDat
136
142
* @notice Builds a stake claim ID
137
143
* @param _serviceProvider The address of the service provider
138
144
* @param _nonce A nonce of the stake claim
145
+ * @return The stake claim ID
139
146
*/
140
147
function _buildStakeClaimId (address _serviceProvider , uint256 _nonce ) private view returns (bytes32 ) {
141
148
return keccak256 (abi.encodePacked (address (this ), _serviceProvider, _nonce));
0 commit comments