From fa045965afcc7e66b403d2342766896278c31415 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Migone?= Date: Thu, 5 Jun 2025 12:19:20 -0300 Subject: [PATCH 1/6] fix: prevent GraphTallyCollector from accepting non QueryFee payments MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tomás Migone --- .../interfaces/IGraphTallyCollector.sol | 6 +++ .../collectors/GraphTallyCollector.sol | 2 + .../collect/collect.t.sol | 27 +++++++++++ .../collect/indexing/indexing.t.sol | 10 ++++ .../subgraphService/collect/query/query.t.sol | 47 +++++++++++++++++++ 5 files changed, 92 insertions(+) diff --git a/packages/horizon/contracts/interfaces/IGraphTallyCollector.sol b/packages/horizon/contracts/interfaces/IGraphTallyCollector.sol index cb665bda5..0fb336ed3 100644 --- a/packages/horizon/contracts/interfaces/IGraphTallyCollector.sol +++ b/packages/horizon/contracts/interfaces/IGraphTallyCollector.sol @@ -99,6 +99,12 @@ interface IGraphTallyCollector is IPaymentsCollector { */ error GraphTallyCollectorInvalidTokensToCollectAmount(uint256 tokensToCollect, uint256 maxTokensToCollect); + /** + * @notice Thrown when the payment type is invalid + * @param paymentType The payment type + */ + error GraphTallyCollectorInvalidPaymentType(IGraphPayments.PaymentTypes paymentType); + /** * @notice See {IPaymentsCollector.collect} * This variant adds the ability to partially collect a RAV by specifying the amount of tokens to collect. diff --git a/packages/horizon/contracts/payments/collectors/GraphTallyCollector.sol b/packages/horizon/contracts/payments/collectors/GraphTallyCollector.sol index 9a417fd9b..bab1be09e 100644 --- a/packages/horizon/contracts/payments/collectors/GraphTallyCollector.sol +++ b/packages/horizon/contracts/payments/collectors/GraphTallyCollector.sol @@ -102,6 +102,8 @@ contract GraphTallyCollector is EIP712, GraphDirectory, Authorizable, IGraphTall bytes calldata _data, uint256 _tokensToCollect ) private returns (uint256) { + require(_paymentType == IGraphPayments.PaymentTypes.QueryFee, GraphTallyCollectorInvalidPaymentType(_paymentType)); + (SignedRAV memory signedRAV, uint256 dataServiceCut, address receiverDestination) = abi.decode( _data, (SignedRAV, uint256, address) diff --git a/packages/horizon/test/unit/payments/graph-tally-collector/collect/collect.t.sol b/packages/horizon/test/unit/payments/graph-tally-collector/collect/collect.t.sol index c0c30fb78..ed65dd64c 100644 --- a/packages/horizon/test/unit/payments/graph-tally-collector/collect/collect.t.sol +++ b/packages/horizon/test/unit/payments/graph-tally-collector/collect/collect.t.sol @@ -483,4 +483,31 @@ contract GraphTallyCollectTest is GraphTallyTest { bytes memory allocation0Data = _getQueryFeeEncodedData(signerPrivateKey, collectTestParams[0]); _collect(IGraphPayments.PaymentTypes.QueryFee, allocation0Data); } + + function testGraphTally_Collect_RevertWhen_IncorrectPaymentType( + uint256 tokens + ) public useIndexer useProvisionDataService(users.verifier, 100, 0, 0) useGateway useSigner { + tokens = bound(tokens, 1, type(uint128).max); + + _depositTokens(address(graphTallyCollector), users.indexer, tokens); + + CollectTestParams memory params = CollectTestParams({ + tokens: tokens, + allocationId: _allocationId, + payer: users.gateway, + indexer: users.indexer, + collector: users.verifier + }); + + bytes memory data = _getQueryFeeEncodedData(signerPrivateKey, params); + + resetPrank(users.verifier); + vm.expectRevert( + abi.encodeWithSelector( + IGraphTallyCollector.GraphTallyCollectorInvalidPaymentType.selector, + IGraphPayments.PaymentTypes.IndexingRewards + ) + ); + graphTallyCollector.collect(IGraphPayments.PaymentTypes.IndexingRewards, data); + } } diff --git a/packages/subgraph-service/test/unit/subgraphService/collect/indexing/indexing.t.sol b/packages/subgraph-service/test/unit/subgraphService/collect/indexing/indexing.t.sol index 6d2d18571..c97416157 100644 --- a/packages/subgraph-service/test/unit/subgraphService/collect/indexing/indexing.t.sol +++ b/packages/subgraph-service/test/unit/subgraphService/collect/indexing/indexing.t.sol @@ -171,4 +171,14 @@ contract SubgraphServiceCollectIndexingTest is SubgraphServiceTest { ); subgraphService.collect(newIndexer, paymentType, data); } + + function test_SubgraphService_Collect_Indexing_RevertWhen_IncorrectPaymentType(uint256 tokens) public useIndexer useAllocation(tokens) { + bytes memory data = abi.encode(allocationID, bytes32("POI"), _getHardcodedPOIMetadata()); + + // skip time to ensure allocation gets rewards + vm.roll(block.number + EPOCH_LENGTH); + + vm.expectRevert(); + subgraphService.collect(users.indexer, IGraphPayments.PaymentTypes.QueryFee, data); + } } diff --git a/packages/subgraph-service/test/unit/subgraphService/collect/query/query.t.sol b/packages/subgraph-service/test/unit/subgraphService/collect/query/query.t.sol index 433e32375..72da1392b 100644 --- a/packages/subgraph-service/test/unit/subgraphService/collect/query/query.t.sol +++ b/packages/subgraph-service/test/unit/subgraphService/collect/query/query.t.sol @@ -11,6 +11,7 @@ import { MessageHashUtils } from "@openzeppelin/contracts/utils/cryptography/Mes import { ISubgraphService } from "../../../../../contracts/interfaces/ISubgraphService.sol"; import { SubgraphServiceTest } from "../../SubgraphService.t.sol"; +import { Allocation } from "../../../../../contracts/libraries/Allocation.sol"; contract SubgraphServiceRegisterTest is SubgraphServiceTest { using PPMMath for uint128; @@ -279,4 +280,50 @@ contract SubgraphServiceRegisterTest is SubgraphServiceTest { ); assertEq(afterTokensCollected, intermediateTokensCollected + tokensToCollect + (oddTokensPayment ? 1 : 0)); } + + function testCollect_QueryFees_ClosedAllocation( + uint256 tokensAllocated, + uint256 tokensPayment + ) public useIndexer useAllocation(tokensAllocated) { + vm.assume(tokensAllocated > minimumProvisionTokens * stakeToFeesRatio); + uint256 maxTokensPayment = tokensAllocated / stakeToFeesRatio > type(uint128).max + ? type(uint128).max + : tokensAllocated / stakeToFeesRatio; + tokensPayment = bound(tokensPayment, minimumProvisionTokens, maxTokensPayment); + + resetPrank(users.gateway); + _deposit(tokensPayment); + _authorizeSigner(); + + // Close the allocation + resetPrank(users.indexer); + bytes memory closeAlloData = abi.encode(allocationID); + _stopService(users.indexer, closeAlloData); + + // Collect the RAV + resetPrank(users.indexer); + bytes memory data = _getQueryFeeEncodedData(users.indexer, uint128(tokensPayment), 0); + _collect(users.indexer, IGraphPayments.PaymentTypes.QueryFee, data); + } + + function testCollect_QueryFees_RevertWhen_IncorrectPaymentType( + uint256 tokensAllocated, + uint256 tokensPayment + ) public useIndexer useAllocation(tokensAllocated) { + vm.assume(tokensAllocated > minimumProvisionTokens * stakeToFeesRatio); + uint256 maxTokensPayment = tokensAllocated / stakeToFeesRatio > type(uint128).max + ? type(uint128).max + : tokensAllocated / stakeToFeesRatio; + tokensPayment = bound(tokensPayment, minimumProvisionTokens, maxTokensPayment); + + resetPrank(users.gateway); + _deposit(tokensPayment); + _authorizeSigner(); + + resetPrank(users.indexer); + bytes memory data = _getQueryFeeEncodedData(users.indexer, uint128(tokensPayment), 0); + + vm.expectRevert(); + subgraphService.collect(users.indexer, IGraphPayments.PaymentTypes.IndexingRewards, data); + } } From 97dceb13bff269ecc80bbe69a7bcb9785a3c363f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Migone?= Date: Thu, 5 Jun 2025 12:58:32 -0300 Subject: [PATCH 2/6] fix: allow creating multiple disputes for same allo/poi tuple MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tomás Migone --- .../contracts/DisputeManager.sol | 15 +++++++--- .../contracts/interfaces/IDisputeManager.sol | 5 +++- .../unit/disputeManager/DisputeManager.t.sol | 9 +++--- .../disputeManager/disputes/disputes.t.sol | 2 +- .../disputes/indexing/accept.t.sol | 10 +++---- .../disputes/indexing/cancel.t.sol | 10 +++---- .../disputes/indexing/create.t.sol | 30 +++++++++++++------ .../disputes/indexing/draw.t.sol | 4 +-- .../disputes/indexing/reject.t.sol | 4 +-- 9 files changed, 56 insertions(+), 33 deletions(-) diff --git a/packages/subgraph-service/contracts/DisputeManager.sol b/packages/subgraph-service/contracts/DisputeManager.sol index ec6634034..2a4dc6b6b 100644 --- a/packages/subgraph-service/contracts/DisputeManager.sol +++ b/packages/subgraph-service/contracts/DisputeManager.sol @@ -120,12 +120,16 @@ contract DisputeManager is } /// @inheritdoc IDisputeManager - function createIndexingDispute(address allocationId, bytes32 poi) external override returns (bytes32) { + function createIndexingDispute( + address allocationId, + bytes32 poi, + uint256 blockNumber + ) external override returns (bytes32) { // Get funds from fisherman _graphToken().pullTokens(msg.sender, disputeDeposit); // Create a dispute - return _createIndexingDisputeWithAllocation(msg.sender, disputeDeposit, allocationId, poi); + return _createIndexingDisputeWithAllocation(msg.sender, disputeDeposit, allocationId, poi, blockNumber); } /// @inheritdoc IDisputeManager @@ -450,16 +454,18 @@ contract DisputeManager is * @param _deposit Amount of tokens staked as deposit * @param _allocationId Allocation disputed * @param _poi The POI being disputed + * @param _blockNumber The block number for which the POI was calculated * @return The dispute id */ function _createIndexingDisputeWithAllocation( address _fisherman, uint256 _deposit, address _allocationId, - bytes32 _poi + bytes32 _poi, + uint256 _blockNumber ) private returns (bytes32) { // Create a disputeId - bytes32 disputeId = keccak256(abi.encodePacked(_allocationId, _poi)); + bytes32 disputeId = keccak256(abi.encodePacked(_allocationId, _poi, _blockNumber)); // Only one dispute for an allocationId at a time require(!isDisputeCreated(disputeId), DisputeManagerDisputeAlreadyCreated(disputeId)); @@ -496,6 +502,7 @@ contract DisputeManager is _deposit, _allocationId, _poi, + _blockNumber, stakeSnapshot, cancellableAt ); diff --git a/packages/subgraph-service/contracts/interfaces/IDisputeManager.sol b/packages/subgraph-service/contracts/interfaces/IDisputeManager.sol index 611009bef..217b1c154 100644 --- a/packages/subgraph-service/contracts/interfaces/IDisputeManager.sol +++ b/packages/subgraph-service/contracts/interfaces/IDisputeManager.sol @@ -123,6 +123,7 @@ interface IDisputeManager { * @param tokens The amount of tokens deposited by the fisherman * @param allocationId The allocation id * @param poi The POI + * @param blockNumber The block number for which the POI was calculated * @param stakeSnapshot The stake snapshot of the indexer at the time of the dispute * @param cancellableAt The timestamp when the dispute can be cancelled */ @@ -133,6 +134,7 @@ interface IDisputeManager { uint256 tokens, address allocationId, bytes32 poi, + uint256 blockNumber, uint256 stakeSnapshot, uint256 cancellableAt ); @@ -458,9 +460,10 @@ interface IDisputeManager { * * @param allocationId The allocation to dispute * @param poi The Proof of Indexing (POI) being disputed + * @param blockNumber The block number for which the POI was calculated * @return The dispute id */ - function createIndexingDispute(address allocationId, bytes32 poi) external returns (bytes32); + function createIndexingDispute(address allocationId, bytes32 poi, uint256 blockNumber) external returns (bytes32); /** * @notice Creates and auto-accepts a legacy dispute. diff --git a/packages/subgraph-service/test/unit/disputeManager/DisputeManager.t.sol b/packages/subgraph-service/test/unit/disputeManager/DisputeManager.t.sol index ebe35e4fa..720460bc4 100644 --- a/packages/subgraph-service/test/unit/disputeManager/DisputeManager.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/DisputeManager.t.sol @@ -69,9 +69,9 @@ contract DisputeManagerTest is SubgraphServiceSharedTest { assertEq(address(disputeManager.subgraphService()), _subgraphService, "Subgraph service should be set."); } - function _createIndexingDispute(address _allocationId, bytes32 _poi) internal returns (bytes32) { + function _createIndexingDispute(address _allocationId, bytes32 _poi, uint256 _blockNumber) internal returns (bytes32) { (, address fisherman, ) = vm.readCallers(); - bytes32 expectedDisputeId = keccak256(abi.encodePacked(_allocationId, _poi)); + bytes32 expectedDisputeId = keccak256(abi.encodePacked(_allocationId, _poi, _blockNumber)); uint256 disputeDeposit = disputeManager.disputeDeposit(); uint256 beforeFishermanBalance = token.balanceOf(fisherman); Allocation.State memory alloc = subgraphService.getAllocation(_allocationId); @@ -88,13 +88,14 @@ contract DisputeManagerTest is SubgraphServiceSharedTest { fisherman, disputeDeposit, _allocationId, - _poi, + _poi, + _blockNumber, stakeSnapshot, cancellableAt ); // Create the indexing dispute - bytes32 _disputeId = disputeManager.createIndexingDispute(_allocationId, _poi); + bytes32 _disputeId = disputeManager.createIndexingDispute(_allocationId, _poi, _blockNumber); // Check that the dispute was created and that it has the correct ID assertTrue(disputeManager.isDisputeCreated(_disputeId), "Dispute should be created."); diff --git a/packages/subgraph-service/test/unit/disputeManager/disputes/disputes.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/disputes.t.sol index 71d40e055..11a49d8e7 100644 --- a/packages/subgraph-service/test/unit/disputeManager/disputes/disputes.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/disputes.t.sol @@ -29,7 +29,7 @@ contract DisputeManagerDisputeTest is DisputeManagerTest { function test_Dispute_Accept_RevertIf_SlashZeroTokens(uint256 tokens) public useIndexer useAllocation(tokens) { resetPrank(users.fisherman); - bytes32 disputeID = _createIndexingDispute(allocationID, bytes32("POI101")); + bytes32 disputeID = _createIndexingDispute(allocationID, bytes32("POI101"), block.number); // attempt to accept dispute with 0 tokens slashed resetPrank(users.arbitrator); diff --git a/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/accept.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/accept.t.sol index e06f105b8..cb7e48fc9 100644 --- a/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/accept.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/accept.t.sol @@ -18,7 +18,7 @@ contract DisputeManagerIndexingAcceptDisputeTest is DisputeManagerTest { tokensSlash = bound(tokensSlash, 1, uint256(maxSlashingPercentage).mulPPM(tokens)); resetPrank(users.fisherman); - bytes32 disputeID = _createIndexingDispute(allocationID, bytes32("POI1")); + bytes32 disputeID = _createIndexingDispute(allocationID, bytes32("POI1"), block.number); resetPrank(users.arbitrator); _acceptDispute(disputeID, tokensSlash); @@ -31,7 +31,7 @@ contract DisputeManagerIndexingAcceptDisputeTest is DisputeManagerTest { tokensSlash = bound(tokensSlash, 1, uint256(maxSlashingPercentage).mulPPM(tokens)); resetPrank(users.fisherman); - bytes32 disputeID = _createIndexingDispute(allocationID, bytes32("POI1")); + bytes32 disputeID = _createIndexingDispute(allocationID, bytes32("POI1"), block.number); resetPrank(users.arbitrator); // clear subgraph service address from storage @@ -48,7 +48,7 @@ contract DisputeManagerIndexingAcceptDisputeTest is DisputeManagerTest { tokensSlash = bound(tokensSlash, 1, uint256(maxSlashingPercentage).mulPPM(tokens)); resetPrank(users.fisherman); - bytes32 disputeID = _createIndexingDispute(allocationID, bytes32("POI1")); + bytes32 disputeID = _createIndexingDispute(allocationID, bytes32("POI1"), block.number); resetPrank(users.arbitrator); _acceptDispute(disputeID, tokensSlash); @@ -61,7 +61,7 @@ contract DisputeManagerIndexingAcceptDisputeTest is DisputeManagerTest { tokensSlash = bound(tokensSlash, 1, uint256(maxSlashingPercentage).mulPPM(tokens)); resetPrank(users.fisherman); - bytes32 disputeID = _createIndexingDispute(allocationID, bytes32("POI1")); + bytes32 disputeID = _createIndexingDispute(allocationID, bytes32("POI1"), block.number); // attempt to accept dispute as fisherman resetPrank(users.fisherman); @@ -75,7 +75,7 @@ contract DisputeManagerIndexingAcceptDisputeTest is DisputeManagerTest { ) public useIndexer useAllocation(tokens) { resetPrank(users.fisherman); tokensSlash = bound(tokensSlash, uint256(maxSlashingPercentage).mulPPM(tokens) + 1, type(uint256).max); - bytes32 disputeID = _createIndexingDispute(allocationID, bytes32("POI101")); + bytes32 disputeID = _createIndexingDispute(allocationID, bytes32("POI101"), block.number); // max slashing percentage is 50% resetPrank(users.arbitrator); diff --git a/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/cancel.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/cancel.t.sol index 8b8e0f587..ac0541f02 100644 --- a/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/cancel.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/cancel.t.sol @@ -13,7 +13,7 @@ contract DisputeManagerIndexingCancelDisputeTest is DisputeManagerTest { function test_Indexing_Cancel_Dispute(uint256 tokens) public useIndexer useAllocation(tokens) { resetPrank(users.fisherman); - bytes32 disputeID = _createIndexingDispute(allocationID, bytes32("POI1")); + bytes32 disputeID = _createIndexingDispute(allocationID, bytes32("POI1"), block.number); // skip to end of dispute period uint256 disputePeriod = disputeManager.disputePeriod(); @@ -26,7 +26,7 @@ contract DisputeManagerIndexingCancelDisputeTest is DisputeManagerTest { uint256 tokens ) public useIndexer useAllocation(tokens) { resetPrank(users.fisherman); - bytes32 disputeID = _createIndexingDispute(allocationID, bytes32("POI1")); + bytes32 disputeID = _createIndexingDispute(allocationID, bytes32("POI1"), block.number); resetPrank(users.arbitrator); vm.expectRevert(abi.encodeWithSelector(IDisputeManager.DisputeManagerNotFisherman.selector)); @@ -37,7 +37,7 @@ contract DisputeManagerIndexingCancelDisputeTest is DisputeManagerTest { uint256 tokens ) public useIndexer useAllocation(tokens) { resetPrank(users.fisherman); - bytes32 disputeID = _createIndexingDispute(allocationID, bytes32("POI1")); + bytes32 disputeID = _createIndexingDispute(allocationID, bytes32("POI1"), block.number); vm.expectRevert(abi.encodeWithSelector(IDisputeManager.DisputeManagerDisputePeriodNotFinished.selector)); disputeManager.cancelDispute(disputeID); @@ -45,7 +45,7 @@ contract DisputeManagerIndexingCancelDisputeTest is DisputeManagerTest { function test_Indexing_Cancel_After_DisputePeriodIncreased(uint256 tokens) public useIndexer useAllocation(tokens) { resetPrank(users.fisherman); - bytes32 disputeID = _createIndexingDispute(allocationID, bytes32("POI1")); + bytes32 disputeID = _createIndexingDispute(allocationID, bytes32("POI1"), block.number); // change the dispute period to a higher value uint256 oldDisputePeriod = disputeManager.disputePeriod(); @@ -62,7 +62,7 @@ contract DisputeManagerIndexingCancelDisputeTest is DisputeManagerTest { function test_Indexing_Cancel_After_DisputePeriodDecreased(uint256 tokens) public useIndexer useAllocation(tokens) { resetPrank(users.fisherman); - bytes32 disputeID = _createIndexingDispute(allocationID, bytes32("POI1")); + bytes32 disputeID = _createIndexingDispute(allocationID, bytes32("POI1"), block.number); // change the dispute period to a lower value uint256 oldDisputePeriod = disputeManager.disputePeriod(); diff --git a/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/create.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/create.t.sol index fdf803d5d..595902557 100644 --- a/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/create.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/create.t.sol @@ -13,7 +13,7 @@ contract DisputeManagerIndexingCreateDisputeTest is DisputeManagerTest { function test_Indexing_Create_Dispute(uint256 tokens) public useIndexer useAllocation(tokens) { resetPrank(users.fisherman); - _createIndexingDispute(allocationID, bytes32("POI1")); + _createIndexingDispute(allocationID, bytes32("POI1"), block.number); } function test_Indexing_Create_Dispute_WithDelegation(uint256 tokens, uint256 delegationTokens) public useIndexer { @@ -37,7 +37,7 @@ contract DisputeManagerIndexingCreateDisputeTest is DisputeManagerTest { staking.delegate(users.indexer, address(subgraphService), delegationTokens, 0); resetPrank(users.fisherman); - _createIndexingDispute(allocationID, bytes32("POI1")); + _createIndexingDispute(allocationID, bytes32("POI1"), block.number); } function test_Indexing_Create_Dispute_RevertWhen_SubgraphServiceNotSet( @@ -52,7 +52,7 @@ contract DisputeManagerIndexingCreateDisputeTest is DisputeManagerTest { token.approve(address(disputeManager), disputeDeposit); vm.expectRevert(abi.encodeWithSelector(IDisputeManager.DisputeManagerSubgraphServiceNotSet.selector)); - disputeManager.createIndexingDispute(allocationID, bytes32("POI2")); + disputeManager.createIndexingDispute(allocationID, bytes32("POI2"), block.number); } function test_Indexing_Create_MultipleDisputes() public { @@ -81,7 +81,7 @@ contract DisputeManagerIndexingCreateDisputeTest is DisputeManagerTest { resetPrank(users.fisherman); for (uint i = 0; i < allocationIDPrivateKeys.length; i++) { - _createIndexingDispute(vm.addr(allocationIDPrivateKeys[i]), bytes32("POI1")); + _createIndexingDispute(vm.addr(allocationIDPrivateKeys[i]), bytes32("POI1"), block.number); } } @@ -89,7 +89,7 @@ contract DisputeManagerIndexingCreateDisputeTest is DisputeManagerTest { uint256 tokens ) public useIndexer useAllocation(tokens) { resetPrank(users.fisherman); - bytes32 disputeID = _createIndexingDispute(allocationID, bytes32("POI1")); + bytes32 disputeID = _createIndexingDispute(allocationID, bytes32("POI1"), block.number); // Create another dispute with different fisherman address otherFisherman = makeAddr("otherFisherman"); @@ -101,10 +101,22 @@ contract DisputeManagerIndexingCreateDisputeTest is DisputeManagerTest { disputeID ); vm.expectRevert(expectedError); - disputeManager.createIndexingDispute(allocationID, bytes32("POI1")); + disputeManager.createIndexingDispute(allocationID, bytes32("POI1"), block.number); vm.stopPrank(); } + function test_Indexing_Create_DisputesSamePOIAndAllo( + uint256 tokens + ) public useIndexer useAllocation(tokens) { + resetPrank(users.fisherman); + bytes32 disputeID = _createIndexingDispute(allocationID, bytes32("POI1"), block.number); + + resetPrank(users.arbitrator); + disputeManager.acceptDispute(disputeID, 100); + + _createIndexingDispute(allocationID, bytes32("POI1"), block.number + 1); + } + function test_Indexing_Create_RevertIf_DepositUnderMinimum(uint256 tokensDeposit) public useFisherman { tokensDeposit = bound(tokensDeposit, 0, disputeDeposit - 1); token.approve(address(disputeManager), tokensDeposit); @@ -115,7 +127,7 @@ contract DisputeManagerIndexingCreateDisputeTest is DisputeManagerTest { disputeDeposit ); vm.expectRevert(expectedError); - disputeManager.createIndexingDispute(allocationID, bytes32("POI3")); + disputeManager.createIndexingDispute(allocationID, bytes32("POI3"), block.number); vm.stopPrank(); } @@ -127,7 +139,7 @@ contract DisputeManagerIndexingCreateDisputeTest is DisputeManagerTest { allocationID ); vm.expectRevert(expectedError); - disputeManager.createIndexingDispute(allocationID, bytes32("POI4")); + disputeManager.createIndexingDispute(allocationID, bytes32("POI4"), block.number); vm.stopPrank(); } @@ -143,6 +155,6 @@ contract DisputeManagerIndexingCreateDisputeTest is DisputeManagerTest { resetPrank(users.fisherman); token.approve(address(disputeManager), tokens); vm.expectRevert(abi.encodeWithSelector(IDisputeManager.DisputeManagerZeroTokens.selector)); - disputeManager.createIndexingDispute(allocationID, bytes32("POI1")); + disputeManager.createIndexingDispute(allocationID, bytes32("POI1"), block.number); } } diff --git a/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/draw.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/draw.t.sol index 62a384b52..53806a258 100644 --- a/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/draw.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/draw.t.sol @@ -14,7 +14,7 @@ contract DisputeManagerIndexingDrawDisputeTest is DisputeManagerTest { function test_Indexing_Draw_Dispute(uint256 tokens) public useIndexer useAllocation(tokens) { resetPrank(users.fisherman); - bytes32 disputeID = _createIndexingDispute(allocationID, bytes32("POI32")); + bytes32 disputeID = _createIndexingDispute(allocationID, bytes32("POI32"), block.number); resetPrank(users.arbitrator); _drawDispute(disputeID); @@ -22,7 +22,7 @@ contract DisputeManagerIndexingDrawDisputeTest is DisputeManagerTest { function test_Indexing_Draw_RevertIf_CallerIsNotArbitrator(uint256 tokens) public useIndexer useAllocation(tokens) { resetPrank(users.fisherman); - bytes32 disputeID = _createIndexingDispute(allocationID, bytes32("POI1")); + bytes32 disputeID = _createIndexingDispute(allocationID, bytes32("POI1"), block.number); // attempt to draw dispute as fisherman vm.expectRevert(abi.encodeWithSelector(IDisputeManager.DisputeManagerNotArbitrator.selector)); diff --git a/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/reject.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/reject.t.sol index a084bee14..6f8f5bf21 100644 --- a/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/reject.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/reject.t.sol @@ -13,7 +13,7 @@ contract DisputeManagerIndexingRejectDisputeTest is DisputeManagerTest { function test_Indexing_Reject_Dispute(uint256 tokens) public useIndexer useAllocation(tokens) { resetPrank(users.fisherman); - bytes32 disputeID = _createIndexingDispute(allocationID, bytes32("POI1")); + bytes32 disputeID = _createIndexingDispute(allocationID, bytes32("POI1"), block.number); resetPrank(users.arbitrator); _rejectDispute(disputeID); @@ -23,7 +23,7 @@ contract DisputeManagerIndexingRejectDisputeTest is DisputeManagerTest { uint256 tokens ) public useIndexer useAllocation(tokens) { resetPrank(users.fisherman); - bytes32 disputeID = _createIndexingDispute(allocationID, bytes32("POI1")); + bytes32 disputeID = _createIndexingDispute(allocationID, bytes32("POI1"), block.number); // attempt to accept dispute as fisherman resetPrank(users.fisherman); From d89440a95ffaf9a9abfc1a6836399e3189e66e50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Migone?= Date: Thu, 5 Jun 2025 14:03:12 -0300 Subject: [PATCH 3/6] fix: consider delegation when deciding if an indexer is disputable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tomás Migone --- .../contracts/DisputeManager.sol | 36 ++++++++----------- .../disputes/indexing/create.t.sol | 20 +++++++++++ .../disputes/query/create.t.sol | 23 ++++++++++++ 3 files changed, 57 insertions(+), 22 deletions(-) diff --git a/packages/subgraph-service/contracts/DisputeManager.sol b/packages/subgraph-service/contracts/DisputeManager.sol index 2a4dc6b6b..573e8f67e 100644 --- a/packages/subgraph-service/contracts/DisputeManager.sol +++ b/packages/subgraph-service/contracts/DisputeManager.sol @@ -344,11 +344,7 @@ contract DisputeManager is /// @inheritdoc IDisputeManager function getStakeSnapshot(address indexer) external view override returns (uint256) { - IHorizonStaking.Provision memory provision = _graphStaking().getProvision( - indexer, - address(_getSubgraphService()) - ); - return _getStakeSnapshot(indexer, provision.tokens); + return _getStakeSnapshot(indexer); } /// @inheritdoc IDisputeManager @@ -398,13 +394,6 @@ contract DisputeManager is // Get the indexer that signed the attestation address indexer = getAttestationIndexer(_attestation); - // The indexer is disputable - IHorizonStaking.Provision memory provision = _graphStaking().getProvision( - indexer, - address(_getSubgraphService()) - ); - require(provision.tokens != 0, DisputeManagerZeroTokens()); - // Create a disputeId bytes32 disputeId = keccak256( abi.encodePacked( @@ -419,8 +408,11 @@ contract DisputeManager is // Only one dispute at a time require(!isDisputeCreated(disputeId), DisputeManagerDisputeAlreadyCreated(disputeId)); + // The indexer is disputable + uint256 stakeSnapshot = _getStakeSnapshot(indexer); + require(stakeSnapshot != 0, DisputeManagerZeroTokens()); + // Store dispute - uint256 stakeSnapshot = _getStakeSnapshot(indexer, provision.tokens); uint256 cancellableAt = block.timestamp + disputePeriod; disputes[disputeId] = Dispute( indexer, @@ -477,11 +469,10 @@ contract DisputeManager is require(indexer != address(0), DisputeManagerIndexerNotFound(_allocationId)); // The indexer must be disputable - IHorizonStaking.Provision memory provision = _graphStaking().getProvision(indexer, address(subgraphService_)); - require(provision.tokens != 0, DisputeManagerZeroTokens()); + uint256 stakeSnapshot = _getStakeSnapshot(indexer); + require(stakeSnapshot != 0, DisputeManagerZeroTokens()); // Store dispute - uint256 stakeSnapshot = _getStakeSnapshot(indexer, provision.tokens); uint256 cancellableAt = block.timestamp + disputePeriod; disputes[disputeId] = Dispute( alloc.indexer, @@ -691,18 +682,19 @@ contract DisputeManager is * @dev A few considerations: * - We include both indexer and delegators stake. * - Thawing stake is not excluded from the snapshot. - * - Delegators stake is capped at the delegation ratio to prevent delegators from inflating the snapshot - * to increase the indexer slash amount. * * Note that the snapshot can be inflated by delegators front-running the dispute creation with a delegation * to the indexer. Given the snapshot is a cap, the dispute outcome is uncertain and considering the cost of capital * and slashing risk, this is not a concern. * @param _indexer Indexer address - * @param _indexerStake Indexer's stake * @return Total stake snapshot */ - function _getStakeSnapshot(address _indexer, uint256 _indexerStake) private view returns (uint256) { - uint256 delegatorsStake = _graphStaking().getDelegationPool(_indexer, address(_getSubgraphService())).tokens; - return _indexerStake + delegatorsStake; + function _getStakeSnapshot(address _indexer) private view returns (uint256) { + address subgraphService = address(_getSubgraphService()); + + IHorizonStaking.Provision memory provision = _graphStaking().getProvision(_indexer, subgraphService); + uint256 delegatorsStake = _graphStaking().getDelegationPool(_indexer, subgraphService).tokens; + + return provision.tokens + delegatorsStake; } } diff --git a/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/create.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/create.t.sol index 595902557..62b368835 100644 --- a/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/create.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/indexing/create.t.sol @@ -157,4 +157,24 @@ contract DisputeManagerIndexingCreateDisputeTest is DisputeManagerTest { vm.expectRevert(abi.encodeWithSelector(IDisputeManager.DisputeManagerZeroTokens.selector)); disputeManager.createIndexingDispute(allocationID, bytes32("POI1"), block.number); } + + function test_Indexing_Create_DontRevertIf_IndexerIsBelowStake_WithDelegation(uint256 tokens, uint256 delegationTokens) public useIndexer useAllocation(tokens) { + // Close allocation + bytes memory data = abi.encode(allocationID); + _stopService(users.indexer, data); + // Thaw, deprovision and unstake + address subgraphDataServiceAddress = address(subgraphService); + _thawDeprovisionAndUnstake(users.indexer, subgraphDataServiceAddress, tokens); + + delegationTokens = bound(delegationTokens, 1 ether, 100_000_000 ether); + + resetPrank(users.delegator); + token.approve(address(staking), delegationTokens); + staking.delegate(users.indexer, address(subgraphService), delegationTokens, 0); + + // create dispute + resetPrank(users.fisherman); + token.approve(address(disputeManager), tokens); + _createIndexingDispute(allocationID, bytes32("POI1"), block.number); + } } diff --git a/packages/subgraph-service/test/unit/disputeManager/disputes/query/create.t.sol b/packages/subgraph-service/test/unit/disputeManager/disputes/query/create.t.sol index 6abd890a2..94f2fe615 100644 --- a/packages/subgraph-service/test/unit/disputeManager/disputes/query/create.t.sol +++ b/packages/subgraph-service/test/unit/disputeManager/disputes/query/create.t.sol @@ -155,4 +155,27 @@ contract DisputeManagerQueryCreateDisputeTest is DisputeManagerTest { vm.expectRevert(abi.encodeWithSelector(IDisputeManager.DisputeManagerZeroTokens.selector)); disputeManager.createQueryDispute(attestationData); } + + function test_Query_Create_DontRevertIf_IndexerIsBelowStake_WithDelegation(uint256 tokens, uint256 delegationTokens) public useIndexer useAllocation(tokens) { + // Close allocation + bytes memory data = abi.encode(allocationID); + _stopService(users.indexer, data); + // Thaw, deprovision and unstake + address subgraphDataServiceAddress = address(subgraphService); + _thawDeprovisionAndUnstake(users.indexer, subgraphDataServiceAddress, tokens); + + delegationTokens = bound(delegationTokens, 1 ether, 100_000_000 ether); + + resetPrank(users.delegator); + token.approve(address(staking), delegationTokens); + staking.delegate(users.indexer, address(subgraphService), delegationTokens, 0); + + // create dispute + resetPrank(users.fisherman); + token.approve(address(disputeManager), tokens); + + Attestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); + bytes memory attestationData = _createAtestationData(receipt, allocationIDPrivateKey); + _createQueryDispute(attestationData); + } } From 1c7e4cfb280e3e5f7396910e75df263480869897 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Migone?= Date: Tue, 17 Jun 2025 14:35:46 -0300 Subject: [PATCH 4/6] fix: ensure close allo behavior consistent with legacy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tomás Migone --- packages/horizon/contracts/staking/HorizonStakingExtension.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/horizon/contracts/staking/HorizonStakingExtension.sol b/packages/horizon/contracts/staking/HorizonStakingExtension.sol index 17787c4d3..be585fdb9 100644 --- a/packages/horizon/contracts/staking/HorizonStakingExtension.sol +++ b/packages/horizon/contracts/staking/HorizonStakingExtension.sol @@ -356,7 +356,7 @@ contract HorizonStakingExtension is HorizonStakingBase, IHorizonStakingExtension // Process non-zero-allocation rewards tracking if (alloc.tokens > 0) { // Distribute rewards if proof of indexing was presented by the indexer or operator - if (isIndexerOrOperator && _poi != 0) { + if (isIndexerOrOperator && _poi != 0 && epochs > 0) { _distributeRewards(_allocationID, alloc.indexer); } else { _updateRewards(alloc.subgraphDeploymentID); From 291c6fff8b52f8a1ad74cbb6eaed0e52ec18e320 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Migone?= Date: Tue, 8 Jul 2025 11:54:47 -0300 Subject: [PATCH 5/6] Revert "fix: prevent GraphTallyCollector from accepting non QueryFee payments" This reverts commit fa045965afcc7e66b403d2342766896278c31415. --- .../interfaces/IGraphTallyCollector.sol | 6 --- .../collectors/GraphTallyCollector.sol | 2 - .../collect/collect.t.sol | 27 ----------- .../collect/indexing/indexing.t.sol | 10 ---- .../subgraphService/collect/query/query.t.sol | 47 ------------------- 5 files changed, 92 deletions(-) diff --git a/packages/horizon/contracts/interfaces/IGraphTallyCollector.sol b/packages/horizon/contracts/interfaces/IGraphTallyCollector.sol index 0fb336ed3..cb665bda5 100644 --- a/packages/horizon/contracts/interfaces/IGraphTallyCollector.sol +++ b/packages/horizon/contracts/interfaces/IGraphTallyCollector.sol @@ -99,12 +99,6 @@ interface IGraphTallyCollector is IPaymentsCollector { */ error GraphTallyCollectorInvalidTokensToCollectAmount(uint256 tokensToCollect, uint256 maxTokensToCollect); - /** - * @notice Thrown when the payment type is invalid - * @param paymentType The payment type - */ - error GraphTallyCollectorInvalidPaymentType(IGraphPayments.PaymentTypes paymentType); - /** * @notice See {IPaymentsCollector.collect} * This variant adds the ability to partially collect a RAV by specifying the amount of tokens to collect. diff --git a/packages/horizon/contracts/payments/collectors/GraphTallyCollector.sol b/packages/horizon/contracts/payments/collectors/GraphTallyCollector.sol index bab1be09e..9a417fd9b 100644 --- a/packages/horizon/contracts/payments/collectors/GraphTallyCollector.sol +++ b/packages/horizon/contracts/payments/collectors/GraphTallyCollector.sol @@ -102,8 +102,6 @@ contract GraphTallyCollector is EIP712, GraphDirectory, Authorizable, IGraphTall bytes calldata _data, uint256 _tokensToCollect ) private returns (uint256) { - require(_paymentType == IGraphPayments.PaymentTypes.QueryFee, GraphTallyCollectorInvalidPaymentType(_paymentType)); - (SignedRAV memory signedRAV, uint256 dataServiceCut, address receiverDestination) = abi.decode( _data, (SignedRAV, uint256, address) diff --git a/packages/horizon/test/unit/payments/graph-tally-collector/collect/collect.t.sol b/packages/horizon/test/unit/payments/graph-tally-collector/collect/collect.t.sol index ed65dd64c..c0c30fb78 100644 --- a/packages/horizon/test/unit/payments/graph-tally-collector/collect/collect.t.sol +++ b/packages/horizon/test/unit/payments/graph-tally-collector/collect/collect.t.sol @@ -483,31 +483,4 @@ contract GraphTallyCollectTest is GraphTallyTest { bytes memory allocation0Data = _getQueryFeeEncodedData(signerPrivateKey, collectTestParams[0]); _collect(IGraphPayments.PaymentTypes.QueryFee, allocation0Data); } - - function testGraphTally_Collect_RevertWhen_IncorrectPaymentType( - uint256 tokens - ) public useIndexer useProvisionDataService(users.verifier, 100, 0, 0) useGateway useSigner { - tokens = bound(tokens, 1, type(uint128).max); - - _depositTokens(address(graphTallyCollector), users.indexer, tokens); - - CollectTestParams memory params = CollectTestParams({ - tokens: tokens, - allocationId: _allocationId, - payer: users.gateway, - indexer: users.indexer, - collector: users.verifier - }); - - bytes memory data = _getQueryFeeEncodedData(signerPrivateKey, params); - - resetPrank(users.verifier); - vm.expectRevert( - abi.encodeWithSelector( - IGraphTallyCollector.GraphTallyCollectorInvalidPaymentType.selector, - IGraphPayments.PaymentTypes.IndexingRewards - ) - ); - graphTallyCollector.collect(IGraphPayments.PaymentTypes.IndexingRewards, data); - } } diff --git a/packages/subgraph-service/test/unit/subgraphService/collect/indexing/indexing.t.sol b/packages/subgraph-service/test/unit/subgraphService/collect/indexing/indexing.t.sol index c97416157..6d2d18571 100644 --- a/packages/subgraph-service/test/unit/subgraphService/collect/indexing/indexing.t.sol +++ b/packages/subgraph-service/test/unit/subgraphService/collect/indexing/indexing.t.sol @@ -171,14 +171,4 @@ contract SubgraphServiceCollectIndexingTest is SubgraphServiceTest { ); subgraphService.collect(newIndexer, paymentType, data); } - - function test_SubgraphService_Collect_Indexing_RevertWhen_IncorrectPaymentType(uint256 tokens) public useIndexer useAllocation(tokens) { - bytes memory data = abi.encode(allocationID, bytes32("POI"), _getHardcodedPOIMetadata()); - - // skip time to ensure allocation gets rewards - vm.roll(block.number + EPOCH_LENGTH); - - vm.expectRevert(); - subgraphService.collect(users.indexer, IGraphPayments.PaymentTypes.QueryFee, data); - } } diff --git a/packages/subgraph-service/test/unit/subgraphService/collect/query/query.t.sol b/packages/subgraph-service/test/unit/subgraphService/collect/query/query.t.sol index 72da1392b..433e32375 100644 --- a/packages/subgraph-service/test/unit/subgraphService/collect/query/query.t.sol +++ b/packages/subgraph-service/test/unit/subgraphService/collect/query/query.t.sol @@ -11,7 +11,6 @@ import { MessageHashUtils } from "@openzeppelin/contracts/utils/cryptography/Mes import { ISubgraphService } from "../../../../../contracts/interfaces/ISubgraphService.sol"; import { SubgraphServiceTest } from "../../SubgraphService.t.sol"; -import { Allocation } from "../../../../../contracts/libraries/Allocation.sol"; contract SubgraphServiceRegisterTest is SubgraphServiceTest { using PPMMath for uint128; @@ -280,50 +279,4 @@ contract SubgraphServiceRegisterTest is SubgraphServiceTest { ); assertEq(afterTokensCollected, intermediateTokensCollected + tokensToCollect + (oddTokensPayment ? 1 : 0)); } - - function testCollect_QueryFees_ClosedAllocation( - uint256 tokensAllocated, - uint256 tokensPayment - ) public useIndexer useAllocation(tokensAllocated) { - vm.assume(tokensAllocated > minimumProvisionTokens * stakeToFeesRatio); - uint256 maxTokensPayment = tokensAllocated / stakeToFeesRatio > type(uint128).max - ? type(uint128).max - : tokensAllocated / stakeToFeesRatio; - tokensPayment = bound(tokensPayment, minimumProvisionTokens, maxTokensPayment); - - resetPrank(users.gateway); - _deposit(tokensPayment); - _authorizeSigner(); - - // Close the allocation - resetPrank(users.indexer); - bytes memory closeAlloData = abi.encode(allocationID); - _stopService(users.indexer, closeAlloData); - - // Collect the RAV - resetPrank(users.indexer); - bytes memory data = _getQueryFeeEncodedData(users.indexer, uint128(tokensPayment), 0); - _collect(users.indexer, IGraphPayments.PaymentTypes.QueryFee, data); - } - - function testCollect_QueryFees_RevertWhen_IncorrectPaymentType( - uint256 tokensAllocated, - uint256 tokensPayment - ) public useIndexer useAllocation(tokensAllocated) { - vm.assume(tokensAllocated > minimumProvisionTokens * stakeToFeesRatio); - uint256 maxTokensPayment = tokensAllocated / stakeToFeesRatio > type(uint128).max - ? type(uint128).max - : tokensAllocated / stakeToFeesRatio; - tokensPayment = bound(tokensPayment, minimumProvisionTokens, maxTokensPayment); - - resetPrank(users.gateway); - _deposit(tokensPayment); - _authorizeSigner(); - - resetPrank(users.indexer); - bytes memory data = _getQueryFeeEncodedData(users.indexer, uint128(tokensPayment), 0); - - vm.expectRevert(); - subgraphService.collect(users.indexer, IGraphPayments.PaymentTypes.IndexingRewards, data); - } } From 4d4cffa97c922975d34fddd480d91c5a21327538 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Migone?= Date: Tue, 8 Jul 2025 11:56:10 -0300 Subject: [PATCH 6/6] chore: add latest audit report MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tomás Migone --- ...ph Horizon Missed Issues Initial Report.pdf | Bin 0 -> 125299 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 packages/horizon/audits/The Graph Horizon Missed Issues Initial Report.pdf diff --git a/packages/horizon/audits/The Graph Horizon Missed Issues Initial Report.pdf b/packages/horizon/audits/The Graph Horizon Missed Issues Initial Report.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9f3fdc265435bdaa0e020f1a59780501ce8de983 GIT binary patch literal 125299 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 z%0D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 literal 0 HcmV?d00001