draft: testing dips#1319
Draft
MoonBoi9001 wants to merge 6 commits intoindexing-payments-management-audit-fix-reducedfrom
Draft
draft: testing dips#1319MoonBoi9001 wants to merge 6 commits intoindexing-payments-management-audit-fix-reducedfrom
MoonBoi9001 wants to merge 6 commits intoindexing-payments-management-audit-fix-reducedfrom
Conversation
HorizonStaking's constructor extends GraphDirectory, which queries the Controller for GraphToken, EpochManager, RewardsManager, etc. These are registered by GraphPeripheryModule. Without an explicit `after` dependency, Ignition may schedule HorizonStaking before the periphery registrations, causing the constructor to read address(0) and revert with GraphDirectoryInvalidZeroAddress. Every other core module (GraphPayments, PaymentsEscrow, GraphTallyCollector, RecurringCollector) declares this dependency. HorizonStaking was the only outlier. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add IRecurringCollector to GraphHorizonContracts interface - Re-export IRecurringCollector from interfaces main entrypoint - Add encodeCollectIndexingFeesData() helper for indexing fee collection - Add decoders: decodeSignedRCA, decodeAcceptIndexingAgreementMetadata, decodeIndexingAgreementTermsV1 - Add round-trip tests for all decoders and encoder
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## indexing-payments-management-audit-fix-reduced #1319 +/- ##
===============================================================================
Coverage 90.86% 90.86%
===============================================================================
Files 81 81
Lines 5274 5274
Branches 949 949
===============================================================================
Hits 4792 4792
Misses 453 453
Partials 29 29
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
The audit-branch SubgraphService.sol now depends on four external libraries (StakeClaims, AllocationHandler, IndexingAgreement, IndexingAgreementDecoder) and a fifth constructor argument for the RecurringCollector, but the Ignition deploy module was not updated to match. Deploys fail at validation time with IGN716 (missing libraries) and IGN703 (4 args expected 5), blocking any fresh hardhat deployment. Deploy the four libraries up-front via m.library() and pass them through deployImplementation's libraries option so the bytecode placeholders resolve. Thread the RecurringCollector address from the horizon deployment into the $global patch in deploy.ts, and add a recurringCollectorAddress placeholder to both the default and localNetwork protocol configs so Ignition can getParameter() it. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Ignition's validator walks each deployed library's bytecode, so it is not enough to link the four libraries into SubgraphService and stop there. IndexingAgreement calls into IndexingAgreementDecoder, which calls into IndexingAgreementDecoderRaw, so both transitive links have to be declared up-front or the deploy aborts on IGN716 while validating the library futures themselves. Deploy IndexingAgreementDecoderRaw first, link it into the Decoder, and link the Decoder into IndexingAgreement. SubgraphService keeps its existing four links unchanged. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The audit-branch RecurringCollectionAgreement struct added a uint16 conditions field at position 9 (between maxSecondsPerCollection and nonce). The toolshed decoder tuple was missing it, so decodeSignedRCA read 10 fields against 11 ABI-encoded fields: nonce read what was actually conditions, metadata read the wrong offset, decode threw. The indexer-agent relies on this decoder to read pending RCA proposals the indexer-service persists. Without the fix, every proposal logs "Failed to decode pending RCA proposal" and is skipped, so the agent never calls acceptIndexingAgreement on-chain and DIPs agreements expire in dipper's DB. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.