Conversation
|
Caution Review failedFailed to post review comments WalkthroughThis PR introduces multi-chain support to Oura by adding Bitcoin, Ethereum, and Substrate sources alongside Cardano with feature-gated compilation. It refactors the core data model to wrap chain-specific records under a unified Changes
Sequence Diagram(s)sequenceDiagram
participant CLI as Watch CLI
participant Dispatch as Command Dispatcher
participant Source as Chain Source
participant Filter as Filters
participant Sink as Terminal Sink
CLI->>Dispatch: args: WatchCommand::Bitcoin(btc::Args)
Dispatch->>Source: initialize BitcoinRpc source
Source->>Source: connect to RPC node
Source->>Source: poll for new blocks
Source->>Filter: emit ChainEvent::Apply<br/>(point, Record::Cardano(...))
Filter->>Filter: process record
Filter->>Sink: forward event
Sink->>Sink: format & display
Sink-->>CLI: stdout/terminal output
sequenceDiagram
participant Pipeline as Pipeline
participant RecordOld as Old Record Enum
participant RecordNew as New Record Enum
participant CardanoMod as Cardano Module
Pipeline->>RecordOld: Record::CborBlock(bytes)
Note over RecordOld: Legacy flat variants
Pipeline->>RecordNew: Record::Cardano(cardano::Record::CborBlock(bytes))
Note over RecordNew: Feature-gated chain-specific wrappers
RecordNew->>CardanoMod: nested variant path
CardanoMod->>CardanoMod: serialize to JSON
Estimated code review effort🎯 5 (Critical) | ⏱️ ~120 minutes Rationale: This is a substantial, high-density refactor introducing multi-chain support across the entire codebase. Key complexity drivers include:
Possibly related PRs
Suggested reviewers
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
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. Comment |
Summary by CodeRabbit
New Features
Documentation
Updates