Skip to content

Commit 9761f10

Browse files
committed
fix: prevent indexer lockout in subgraph service (OZ SR-04)
Signed-off-by: Tomás Migone <[email protected]>
1 parent 230d2d0 commit 9761f10

File tree

2 files changed

+19
-6
lines changed

2 files changed

+19
-6
lines changed

packages/subgraph-service/contracts/SubgraphService.sol

+1-1
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ contract SubgraphService is
148148
function acceptProvisionPendingParameters(
149149
address indexer,
150150
bytes calldata
151-
) external override onlyAuthorizedForProvision(indexer) onlyRegisteredIndexer(indexer) whenNotPaused {
151+
) external override onlyAuthorizedForProvision(indexer) whenNotPaused {
152152
_checkProvisionTokens(indexer);
153153
_acceptProvisionParameters(indexer);
154154
emit ProvisionPendingParametersAccepted(indexer);

packages/subgraph-service/test/subgraphService/provision/accept.t.sol

+18-5
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,24 @@ contract SubgraphServiceProvisionAcceptTest is SubgraphServiceTest {
3434
_acceptProvision(users.indexer, "");
3535
}
3636

37-
function test_SubgraphService_Provision_Accept_RevertWhen_NotRegistered() public useIndexer {
38-
vm.expectRevert(
39-
abi.encodeWithSelector(ISubgraphService.SubgraphServiceIndexerNotRegistered.selector, users.indexer)
40-
);
41-
subgraphService.acceptProvisionPendingParameters(users.indexer, "");
37+
function test_SubgraphService_Provision_Accept_When_NotRegistered(
38+
uint256 tokens,
39+
uint32 newVerifierCut,
40+
uint64 newDisputePeriod
41+
) public useIndexer {
42+
tokens = bound(tokens, minimumProvisionTokens, MAX_TOKENS);
43+
vm.assume(newVerifierCut >= fishermanRewardPercentage);
44+
vm.assume(newVerifierCut <= MAX_PPM);
45+
newDisputePeriod = uint64(bound(newDisputePeriod, disputePeriod, MAX_WAIT_PERIOD));
46+
47+
// Setup indexer but dont register
48+
_createProvision(users.indexer, tokens, fishermanRewardPercentage, disputePeriod);
49+
50+
// Update parameters with new values
51+
_setProvisionParameters(users.indexer, address(subgraphService), newVerifierCut, newDisputePeriod);
52+
53+
// Accept provision and check parameters
54+
_acceptProvision(users.indexer, "");
4255
}
4356

4457
function test_SubgraphService_Provision_Accept_RevertWhen_NotAuthorized() public {

0 commit comments

Comments
 (0)