feat: add CCIP helper#51
Merged
Merged
Conversation
Adds a Foundry test helper for Chainlink CCIP that simulates cross-chain message and token delivery across forked mainnets, mirroring the HyperlaneHelper / AcrossV3Helper pattern. Detects both 1.5 CCIPSendRequested and 1.6 CCIPMessageSent events, resolves the destination OffRamp via Router.getOffRamps(), credits dest tokens via deal(), and pranks as the OffRamp to call routeMessage so ccipReceive runs under realistic onlyOffRamp semantics. Tests cover data-only, funds-only, funds + data, multi-destination, and fee estimates against real ETH<->ARB forks.
Mirrors the src/across pattern: only the structs and interfaces the helper actually uses are kept under src/ccip/interfaces/ (Client, Internal, IRouter, IRouterClient, IAny2EVMMessageReceiver). Drops the lib/chainlink-ccip submodule and the @chainlink-ccip/ remapping so the helper is self-contained, the repo clones faster, and CCIP support follows the same conventions as every other helper.
Adds a Foundry test helper for Aave Delivery Infrastructure that composes pigeon's existing CCIP, LayerZero V2, and Hyperlane helpers plus a new ArbitrumNativeHelper primitive. Two entry points cover the shipping a.DI lanes: helpEthToArb relays through the Arbitrum native inbox (decoding the packed retryable, pranking the Inbox-aliased L1 sender on L2), and helpMultiBridge relays through any subset of CCIP/LZ V2/Hyperlane on a multi-bridge consensus lane. The ArbitrumNativeHelper is a standalone primitive reusable for any L1 contract that wraps Inbox.createRetryableTicket. Funding the CCC is the test author's responsibility; the helper does not fund. Tests run against real Eth+Arb forks with the Aave Labs forked deployment.
Merged
supervaulter
reviewed
May 7, 2026
supervaulter
approved these changes
May 8, 2026
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.
Adds a Foundry test helper for Chainlink CCIP that simulates cross-chain message and token delivery across forked mainnets, mirroring the
HyperlaneHelper/AcrossV3Helperpattern. The helper detects both 1.5CCIPSendRequestedand 1.6CCIPMessageSentevents, resolves the destination OffRamp viaRouter.getOffRamps()(newest-first), reads the destination ERC-20 from the source emission, credits it viadeal(), and pranks as the OffRamp to callRouter.routeMessagesoccipReceiveruns under realisticonlyOffRampsemantics. Tests run against real ETH↔ARB forks and cover data-only, funds-only, funds + data, multi-destination, fee estimates, and log filtering.