Skip to content

fix: Switch CCTP service to use raw_message_dispatch#7742

Merged
ameten merged 19 commits intomainfrom
ameten/ccip-server-graphql-query-change
Jan 27, 2026
Merged

fix: Switch CCTP service to use raw_message_dispatch#7742
ameten merged 19 commits intomainfrom
ameten/ccip-server-graphql-query-change

Conversation

@ameten
Copy link
Copy Markdown
Contributor

@ameten ameten commented Jan 12, 2026

Description

Switch CCTP service to use raw_message_dispatch

Related issues

Backward compatibility

Yes

Testing

Manual

Summary by CodeRabbit

  • Bug Fixes
    • Updated the Offchain Lookup Server's transaction hash retrieval to use an improved data source for enhanced reliability and accuracy.

✏️ Tip: You can customize this high-level summary in your review settings.

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Jan 12, 2026

⚠️ No Changeset found

Latest commit: e67fb9a

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Copy link
Copy Markdown
Contributor

@antigremlin antigremlin left a comment

Choose a reason for hiding this comment

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

Please add a changeset. Would be nice to reference the other PR as well.

Base automatically changed from ameten/cctp-delivery-issue to main January 22, 2026 16:12
@ameten ameten requested a review from yjamin as a code owner January 22, 2026 16:12
@hyper-gonk
Copy link
Copy Markdown
Contributor

hyper-gonk Bot commented Jan 26, 2026

🦀 Rust Agent Docker Image Built Successfully

Image Tags:

gcr.io/abacus-labs-dev/hyperlane-agent:pr-7742
gcr.io/abacus-labs-dev/hyperlane-agent:7ea15e9-20260126-115605

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Jan 26, 2026

📝 Walkthrough

Walkthrough

The Offchain Lookup Server's data retrieval layer got a modest adjustment—the getOriginTransactionHashByMessageId method now pulls transaction hashes from the raw_message_dispatch table instead of message_view, trimming the query to fetch only the necessary field.

Changes

Cohort / File(s) Summary
Core Service Query Migration
typescript/ccip-server/src/services/HyperlaneService.ts
Updated GraphQL query to source transaction hash from raw_message_dispatch instead of message_view; removed unused fields (id, nonce, sender, recipient, is_delivered, origin_tx_id, origin_tx_sender) and adjusted response parsing accordingly
Release Documentation
.changeset/real-poems-fetch.md
Added changeset documenting patch release for @hyperlane-xyz/ccip-server with note about Offchain Lookup Server switching to raw message dispatch table

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Suggested reviewers

  • nambrot
  • ltyu
  • paulbalaji
  • xeno097
  • yjamin
  • Mo-Hussain

Poem

Like layers peeled back to the core,
Data now flows from a different door—
Raw messages dispatch, sleek and lean,
No fluff between, just what's seen. 🧅✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: switching the CCTP service to use raw_message_dispatch instead of message_view in the GraphQL query.
Description check ✅ Passed The description covers all required sections including purpose, related issues, backward compatibility status, and testing methodology, though drive-by changes section is absent.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch ameten/ccip-server-graphql-query-change

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🤖 Fix all issues with AI agents
In `@rust/main/agents/scraper/docs/option-cctp-only.md`:
- Around line 23-39: Add a language specifier to the plain-text fenced code
blocks in option-cctp-only.md (the triple-backtick diagram blocks) to satisfy
MD040; change each ``` to ```text for both diagram sections (the USDC
cross-chain flow and the Event Log flow) so the linter recognizes the language
on those fenced code blocks.
- Around line 216-222: Replace the bolded "Option 1: Hasura Console (manual)"
and "Option 2: Hasura Metadata (automated)" labels with proper Markdown headings
(e.g., "## Option 1: Hasura Console (manual)" and "## Option 2: Hasura Metadata
(automated)") to satisfy MD036; locate the lines containing the exact strings
"Option 1: Hasura Console (manual)" and "Option 2: Hasura Metadata (automated)"
in option-cctp-only.md and convert them to heading syntax, leaving the numbered
steps and surrounding content unchanged.

In `@typescript/ccip-server/src/services/HyperlaneService.ts`:
- Around line 107-112: The code reads responseAsJson = (await
response.json())['data']['raw_message_dispatch'] and then immediately checks
responseAsJson.length which will throw if the GraphQL response is { data: null,
errors: [...] }; update the handling in HyperlaneService.ts to first inspect the
parsed JSON (e.g., const parsed = await response.json()), fail-safe extract
parsed.data?.raw_message_dispatch only if parsed.data and
Array.isArray(parsed.data.raw_message_dispatch), otherwise set responseAsJson =
[] (and optionally log parsed.errors or a warning), then proceed to check
responseAsJson.length and safely access
responseAsJson[0]?.origin_tx_hash.replace('\\x','0x') so you never call .length
or .replace on undefined.

Comment thread rust/main/agents/scraper/docs/option-cctp-only.md Outdated
Comment thread rust/main/agents/scraper/docs/option-cctp-only.md Outdated
Comment thread typescript/ccip-server/src/services/HyperlaneService.ts
@hyper-gonk
Copy link
Copy Markdown
Contributor

hyper-gonk Bot commented Jan 27, 2026

🐳 Monorepo Docker Image Built Successfully

Image Tags:

gcr.io/abacus-labs-dev/hyperlane-monorepo:pr-7742
gcr.io/abacus-labs-dev/hyperlane-monorepo:15da98d-20260127-160124

@hyper-gonk
Copy link
Copy Markdown
Contributor

hyper-gonk Bot commented Jan 27, 2026

🔍 CCIP Server Docker Image Built Successfully

Image Tags:

gcr.io/abacus-labs-dev/hyperlane-offchain-lookup-server:pr-7742
gcr.io/abacus-labs-dev/hyperlane-offchain-lookup-server:15da98d-20260127-160135

@ameten ameten added this pull request to the merge queue Jan 27, 2026
Merged via the queue into main with commit ab078b0 Jan 27, 2026
134 of 135 checks passed
@ameten ameten deleted the ameten/ccip-server-graphql-query-change branch January 27, 2026 17:14
@github-project-automation github-project-automation Bot moved this from In Review to Done in Hyperlane Tasks Jan 27, 2026
@codecov
Copy link
Copy Markdown

codecov Bot commented Jan 27, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 77.02%. Comparing base (52fd0f8) to head (15da98d).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #7742   +/-   ##
=======================================
  Coverage   77.02%   77.02%           
=======================================
  Files         117      117           
  Lines        2651     2651           
  Branches      244      244           
=======================================
  Hits         2042     2042           
  Misses        593      593           
  Partials       16       16           
Components Coverage Δ
core 87.80% <ø> (ø)
hooks 71.86% <ø> (ø)
isms 81.10% <ø> (ø)
token 86.67% <ø> (ø)
middlewares 84.98% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants