feat: Phase 1 IBC Eureka Integration#17
Open
zmanian wants to merge 14 commits into
Open
Conversation
…nConstraints Adds user-controlled preferences for: - Asset delivery (native only, bridged, or any equivalent) - Settlement optimization (cost vs latency) - Maximum settlement time constraint Part of Phase 1 Eureka integration. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Security fix: asset_preference, settlement_preference, and max_settlement_secs are now included in Intent signing hash to prevent tampering. Also fixes clippy warnings by using derive(Default) with #[default] attribute. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add IBC Eureka support to settlement layer: - EurekaDirection enum (CosmosToEthereum, EthereumToCosmos) - Eureka variant in IbcFlowType - 5x timeout multiplier for ZK proof generation - build_eureka_memo helper for Eureka-specific transfers 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add cross-ecosystem types for Phase 1 Eureka integration: - Ecosystem enum (Cosmos, Ethereum, Near) - EurekaDirection, OmnibridgeDirection for bridge routing - SettlementPath with estimated time/cost helpers 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Adds ecosystem metadata to solver solutions: - SolutionMetadata struct with settlement path info - Helper constructors for Cosmos IBC and Eureka - Optional metadata field on Solution for backwards compatibility - Updated existing Solution constructors with metadata: None 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add Eureka API integration to Skip Go client: - EurekaRouteRequest/Response types - is_ethereum_chain helper - get_eureka_quote method for Ethereum ↔ Cosmos quotes - EurekaQuote type with time/cost estimates 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add #[allow(dead_code)] to API response structs for deserialization - Make Asset struct public for public API - Fix unused parameter warnings - Replace manual modulo check with is_multiple_of() - Simplify network assignment in cex withdraw 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Implements Solver trait for cross-ecosystem liquidity via IBC Eureka: - EurekaSolver with Skip Go integration - Asset preference checking (native vs bridged delivery) - Settlement time constraint validation - Cross-ecosystem execution metadata 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add IBC Eureka routes for Ethereum connectivity: - cosmoshub-4 ↔ ethereum-1 direct Eureka routes - ethereum-1 → osmosis-1 via Hub (Eureka + IBC) - is_eureka() helper method on Route Also fix clippy warnings in settlement crate: - Replace or_insert_with(Vec::new) with or_default() - Replace redundant closures with associated function refs - Replace cloned slice with std::slice::from_ref 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Integration tests for EurekaSolver: - Solver setup and configuration - Constraint validation (AssetPreference) - Time constraint validation (max_settlement_secs) - Capacity queries - Cross-ecosystem rejection tests - Health check verification - Live quote test (ignored by default, requires network) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Export new modules and types: - types: ecosystem module (Ecosystem, SettlementPath, etc.) - already present - solver: eureka module (EurekaSolver) - already present - settlement: EurekaDirection, build_eureka_memo - added 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Apply cargo fmt formatting to ecosystem.rs, execution.rs, ibc.rs, adversarial_signature_tests.rs - Fix unused variable warnings in denom.rs and fees.rs tests 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Apply formatting fixes and resolve clippy warnings: - Add #[allow(clippy::too_many_arguments)] for functions with many params - Add #[allow(dead_code)] for unused but intended-for-future functions - Use idiomatic Rust patterns (or_default, is_err, range contains) - Remove needless borrows 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Design document covering: - Ethereum → Cosmos escrow via IBC Eureka - Solver fronting with settlement risk - Eureka packet monitoring - Risk pricing and bond calculations - Settlement contract changes This enables ETH users to participate in atom-intents auctions with solvers taking on Eureka settlement risk. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
8 tasks
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.
Summary
Changes
Types (
crates/types)Settlement (
crates/settlement)Solver (
crates/solver)get_eureka_quote()Test Plan
-D warningsDesign Docs
docs/plans/2026-01-05-unified-cross-ecosystem-design.md- Architecture designdocs/plans/2026-01-05-phase1-eureka-integration.md- Implementation plandocs/plans/2026-01-05-phase2-ethereum-escrow-design.md- Future: ETH user escrow flowFuture Work (Phase 2)
Phase 2 will enable Ethereum users to escrow funds via Eureka, with solvers fronting Cosmos-side funds and taking settlement risk.
🤖 Generated with Claude Code