Tags: graphprotocol/contracts
Tags
upgrade: gip-0088
network: arbitrum-sepolia (421614)
deployed-by: packages/deployment --tags GIP-0088:{upgrade,issuance-connect,issuance-allocate} + execute-governance
contracts (horizon):
- HorizonStaking (implementation: 0xf53b3910ecaeed1aac4bb5ba9840d25e36e52b7c)
- PaymentsEscrow (implementation: 0x827cfa1ecb452931aaa50dc66beb4d763649f206)
- RecurringCollector (implementation: 0xa1af9300209cc60de6ce39752d57f04ab7e29432)
contracts (issuance):
- DefaultAllocation (implementation: 0x77a6e5f2f13218b33a97aec56d591db18d60ffb1)
- DirectAllocation_Implementation (address: 0x77a6e5f2f13218b33a97aec56d591db18d60ffb1)
- IssuanceAllocator (implementation: 0x54c6639e45f9eb5ab55a370d4071e77e5f1b9ff6)
- ReclaimedRewards (implementation: 0x77a6e5f2f13218b33a97aec56d591db18d60ffb1)
- RecurringAgreementManager (implementation: 0xcb197bae4e6d54536a1041fb4b9df9c5962cb70e)
contracts (subgraph-service):
- SubgraphService (implementation: 0x0ee47634c94e6606f67301b3a868319073cb0fc2)
Retrospective mainnet deploy tag (Arbitrum One, chain 42161)
Network: arbitrumOne
Deploy: Issuance Rewards Eligibility Oracle (on-chain 2026-03-16, block 442383753)
Contract (new on 42161):
issuance: RewardsEligibilityOracleA impl 0x7381f99a610f6c438206811183e2d3969ae7eb01
proxy 0x8ec2767a9d9ba02b4e09e8ff4fac2e14a340f304 (transparent)
NetworkOperator 0xae656A0aa51cd465B7506F98F2e8FBb82aa79894
Anchor rationale: this commit's RewardsEligibilityOracle.sol (369-line enumerable
version, solc 0.8.34 / optimizer runs 100 / viaIR) compiles to deployedBytecode hash
0x8ff7d1a6e22cf7f074c4688d9c84394ee151531de3f219ceabf66f0386201412 — byte-identical
(metadata stripped) to the on-chain implementation. Verified by recompilation.
Note: this REO was deployed as part of the GIP-0088 campaign (same bytecode also on
testnet, recorded at deploy/testnet/2026-04-10/gip-0088). The earlier address-book
commit d348b77 (2026-03-24) only recorded the addresses on top of the then-current
296-line REO source, which does NOT reproduce the deployed bytecode; this tag anchors
on 7d7927a where the actually-deployed source merged to main.
Retrospective mainnet deploy tag (Arbitrum One, chain 42161)
Network: arbitrumOne
Deploy: Horizon phase 3 (full Horizon + Subgraph Service)
Contracts (new/updated on 42161):
horizon: EpochManager, L2Curation, L2GNS, SubgraphNFT, RewardsManager,
HorizonStaking, GraphTallyCollector, GraphProxyAdmin,
L2GraphToken, L2GraphTokenGateway (+ GraphPayments/PaymentsEscrow impls)
subgraph-service: SubgraphService + DisputeManager implementations,
L2Curation, L2GNS, SubgraphNFT, LegacyDisputeManager, LegacyServiceRegistry
This commit is the last point where horizon + subgraph-service contract SOURCE
matches the bytecode currently live on mainnet (never redeployed since).
Created retrospectively to record the historical mainnet deploy at commit 32d09fd.
Retrospective mainnet deploy tag (Arbitrum One, chain 42161) Network: arbitrumOne Deploy: Horizon phase 1 Contracts (new on 42161): horizon: Controller, GraphPayments, PaymentsEscrow subgraph-service: SubgraphService, DisputeManager (proxies, pre-implementation) Created retrospectively to record the historical mainnet deploy at commit 9511e19.
Spike: IndexingSignal alternative, continuation of `-1` rebased onto … …`audit-fix-reduced-wip`. Adds deposit re-deposit guard + rounding fixes in `addSignal`/`withdraw`, access control on `onRCACancelled`, indexer-set cleanup on full withdrawal, and integration tests for the contract approver + escrow collect path. Abandoned in favor of the RAM/RecurringCollector direction.
Spike: IndexingSignal as an alternative to RecurringAgreementManager,… … using curation-style signal mechanics. Virtual escrow model evolving into per-agreement escrow, `IContractApprover` for on-chain RCA authorization, `collectionContext` threaded through the escrow chain into `GraphPayments` distribution. Earlier snapshot (pre-rebase). Abandoned in favor of the RAM/RecurringCollector direction.
Audit-fix-3 round, full RecurringCollector storage refactor for TRST-… …L-11. Restructures agreement storage around decoded terms keyed by EIP-712 hash: single `terms[hash]` mapping replaces `rcaOffers`/`rcauOffers`, `AgreementData` slimmed from 7 to 5 slots with `pendingTermsHash` pointer, `_storeTerms` as single validated write gate. Significantly simplifies the implementation — uniform reads via `terms[hash]` (no `abi.decode`, no offer-type discrimination in read paths), 3-way state dispatch in max-claim collapses into `_activeClaimWindow`/`_maxClaimForTerms`, NEW path shared between `offer(NEW)` and `accept()` via `_registerNew`. Superseded by `-2-light`, which kept the existing storage and addressed TRST-L-11 minimally via per-version semantics in `getAgreementDetails` to reduce audit-fix delta.
Audit-fix (PR1301) round, full refactor of the RAM/Collector boundary… …. Moved generic agreement methods from `IRecurringCollector` to `IAgreementCollector`, relocated agreement lifecycle/state into `RecurringCollector`, dropped the `Pair` qualifier from RAM's public API (Pair→Provider), unified `OfferResult`/`AgreementVersion` into a single `AgreementDetails`. Inverts the data-service ↔ Collector interaction: previously the data service called `accept`/`update`/`cancel` on the Collector directly (carrying the user signature); here the payer interacts with the Collector first via a two-phase offer/accept flow, and the Collector then notifies the data service via `acceptAgreement` / `afterAgreementStateChange` callbacks (with `MAX_CALLBACK_GAS` cap and `PayerCallbackFailed` events) — ECDSA signing and `Authorizable` are dropped from the Collector. Superseded by `-reduced`, which preserved the data-service-as-orchestrator pattern and instead tightened internals (collector→provider storage hierarchy, stored-hash auth, scoped claims, pausable/upgradeable Collector).
Pre-rebase tip of the indexing payments audit branch, preserved for o… …riginal commit refs in audit reports.
chore(toolshed): bump to 1.2.1-dips.2 for collector audit-fix-3 const… …ants
PreviousNext