Skip to content

feat: link agreement events to their on-chain transactions#13

Draft
MoonBoi9001 wants to merge 1 commit into
mb9/index-dips-agreement-and-offer-lifecyclefrom
mb9/record-transaction-hashes-on-agreement-events
Draft

feat: link agreement events to their on-chain transactions#13
MoonBoi9001 wants to merge 1 commit into
mb9/index-dips-agreement-and-offer-lifecyclefrom
mb9/record-transaction-hashes-on-agreement-events

Conversation

@MoonBoi9001
Copy link
Copy Markdown
Member

TL;DR

Add on-chain transaction hash fields to IndexingAgreement and IndexingFeeCollection so consumers can audit every agreement state change back to its transaction without grepping indexer-agent logs.

Motivation

The subgraph today captures the terms of each agreement and the timing of every state change, but doesn't store the transaction hash for any of those changes. The mapping has event.transaction.hash in hand on every handler — it just isn't being written to the entity.

This gap was caught during DIPs end-to-end testing on local-network. Recovering the accept transaction hash for a single agreement required SSH-ing into three indexer-agent containers and grepping their JSON logs for the proposalId field. Auditable on-chain links are the whole point of indexing this surface; having them as entity fields on day one closes a clear gap and avoids the same recovery work in every future audit, dashboard, or incident.

Summary

  • IndexingAgreement.acceptedAtTx: hash of the accept transaction (typically a multicall).
  • IndexingAgreement.canceledAtTx: hash of the cancel transaction (zero sentinel if not canceled).
  • IndexingFeeCollection.transactionHash: hash of the collect transaction.
  • Defaults use a 32-byte zero sentinel to match the existing canceledBy zero-address pattern.
  • Tests extended to assert each new field is captured from the event's transaction hash.

Stacked on #12.

IndexingAgreement and IndexingFeeCollection entities don't store the
on-chain tx hash for state changes, so consumers had to grep agent logs
to recover what the mapping already had in hand. Add acceptedAtTx,
canceledAtTx, and per-collection transactionHash.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant