Skip to content

feat(dex): add Agra DEX (ethereum, hyperevm)#9881

Open
cxheng315 wants to merge 9 commits into
duneanalytics:mainfrom
cxheng315:agra-into-9833
Open

feat(dex): add Agra DEX (ethereum, hyperevm)#9881
cxheng315 wants to merge 9 commits into
duneanalytics:mainfrom
cxheng315:agra-into-9833

Conversation

@cxheng315

Copy link
Copy Markdown
Contributor

Thank you for contributing to Spellbook 🪄

Description

Adds the Agra DEX integration (a Seaport-fork order-settlement / direct DEX) to the DEX
sector for ethereum and hyperevm, stacked on top of the combined Pharaoh / Odos /
Ramses / Nest branch from #9833
.

⚠️ Because this branch is stacked on the #9833 combined branch, this PR's diff also contains
those changes (Pharaoh V3 DLMM, Odos on Avalanche C, Ramses + Nest on HyperEVM). The
Agra-specific delta is 14 files / +252 lines; everything else comes from #9833. This is
intended to land together with / after #9833.

Agra — what's included

  • New source agra_multichain (sources/_sector/dex/trades/ethereum/_sources.yml) with
    settlement_evt_orderfulfilled and settlement_evt_ordersmatched — one multichain source
    serves both chains.
  • Platform base trades for both chains, generated from a shared
    agra_base_trades(blockchain, start_date) macro; each chain model is config + a one-line call.
  • Registered agra in dex_ethereum_base_trades / dex_hyperevm_base_trades and in dex_info.
  • Schema tests (unique_combination_of_columns, check_dex_base_trades_seed) + per-chain seeds.
  • Branded agra.trades project view via dex_project_trades('agra'); inherits amount_usd from
    the sector enrichment.

Notes

  • Decodes Seaport OrderFulfilled (offer → token_bought, consideration → token_sold) and dedupes
    the aggregate taker leg of matchOrders settlements.
  • volume_usd comes from the standard sector enrichment in dex.trades.
  • Agra start date: 2026-03-01.

🤖 Generated with Claude Code

@github-actions
github-actions Bot marked this pull request as draft July 9, 2026 03:50
@github-actions github-actions Bot added WIP work in progress dbt: dex covers the DEX dbt subproject labels Jul 9, 2026
@cxheng315
cxheng315 marked this pull request as ready for review July 9, 2026 03:53

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8078ec198f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@github-actions github-actions Bot added ready-for-review this PR development is complete, please review and removed WIP work in progress labels Jul 9, 2026
cxheng315 and others added 9 commits July 12, 2026 14:02
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Drop the duplicated taker aggregate leg of Seaport matchOrders settlements
using settlement_evt_ordersmatched; set agra_start_date to 2026-03-01.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Collapse the near-identical agra_ethereum/agra_hyperevm base_trades models
(105 lines each, differing only by chain) into a parameterized
agra_base_trades(blockchain, start_date) macro. Each chain model is now
config + a one-line macro call. Compiled SQL is unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add a branded agra.trades view via dex_project_trades('agra'), unioning the
enriched dex_<chain>_trades filtered to project = 'agra'. Inherits amount_usd
from the sector enrichment; currently covers ethereum and hyperevm. Register
the view in dex_trades_views_schema.yml.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Collapse offer/consideration to one deterministic row per (tx_hash,
evt_index) via row_number, so a malformed multi-token Agra order cannot
break the unique key or the incremental merge. Agra is a CLOB (1:1
settlement), so this is a no-op on all real data; verified output is
byte-identical to before. Uses a row_number subquery rather than QUALIFY,
which DuneSQL/Trino does not support.

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

Labels

dbt: dex covers the DEX dbt subproject ready-for-review this PR development is complete, please review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant