Conversation
* feat(sdk): add support for ETH-BASE * chore(deps): bump coins repo commit to base addition * feat(etherscan): add ETH-BASE urls * chore(etherscan): remove unsupported FTM, KRC, and HT tokens
* add kdf health check and recovery * add debug logging
|
Caution Review failedThe pull request is closed. WalkthroughThis pull request adds Base chain support to the Komodo DeFi SDK, introduces debug logging infrastructure for RPC calls and balance polling with performance metrics, implements a health check mechanism in the authentication layer, and updates the bundled coins repository reference. The changes modify 16 files across the framework, client, authentication, and asset management layers. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes
Possibly related PRs
Suggested labels
Suggested reviewers
Poem
✨ Finishing touches🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (15)
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 |
There was a problem hiding this comment.
Pull Request Overview
This PR synchronizes the main branch with updates that add support for the Base blockchain network and improve debugging capabilities across the KDF stack. The changes include adding Base as a new EVM-compatible chain alongside existing networks like Ethereum, Arbitrum, and Polygon.
Key changes:
- Adds Base blockchain support throughout the activation, transaction history, and protocol infrastructure
- Implements debug logging capabilities for RPC calls and balance polling operations
- Fixes DNS resolution issues on mobile platforms by using 127.0.0.1 instead of localhost
- Updates bundled coins repository commit reference
Reviewed Changes
Copilot reviewed 15 out of 15 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| packages/komodo_defi_types/lib/src/coin_classes/coin_subclasses.dart | Adds Base enum value and supporting metadata (name, color, token standard) |
| packages/komodo_defi_types/lib/src/coin_classes/protocol_class.dart | Includes Base in EVM chain subclass validation |
| packages/komodo_defi_sdk/lib/src/transaction_history/strategies/etherscan_transaction_history_strategy.dart | Adds Base transaction history endpoints and removes deprecated chain endpoints |
| packages/komodo_defi_sdk/lib/src/balances/balance_manager.dart | Adds configurable debug logging for balance polling operations |
| packages/komodo_defi_sdk/lib/src/activation/protocol_strategies/*.dart | Registers Base in various activation strategy supported subclasses sets |
| packages/komodo_defi_local_auth/lib/src/trezor/trezor_auth_service.dart | Adds ensureKdfHealthy delegation to underlying auth service |
| packages/komodo_defi_local_auth/lib/src/komodo_defi_local_auth.dart | Exposes ensureKdfHealthy method in public API with documentation |
| packages/komodo_defi_local_auth/lib/src/auth/auth_service.dart | Implements KDF health checking with automatic recovery |
| packages/komodo_defi_framework/lib/src/operations/kdf_operations_native.dart | Changes localhost to 127.0.0.1 to prevent DNS issues on mobile |
| packages/komodo_defi_framework/lib/src/client/kdf_api_client.dart | Adds detailed RPC call logging with electrum-specific tracking |
| packages/komodo_defi_framework/lib/komodo_defi_framework.dart | Implements isHealthy check and RPC logging infrastructure |
| packages/komodo_defi_framework/app_build/build_config.json | Updates bundled coins repository commit hash |
Comments suppressed due to low confidence (1)
packages/komodo_defi_sdk/lib/src/transaction_history/strategies/etherscan_transaction_history_strategy.dart:1
- The token standard for Base should be 'BASE20' to match the established pattern of other EVM chains (e.g., 'ARB20' for Arbitrum, 'AVX20' for Avalanche, 'FTM20' for Fantom). The current value 'BASE' breaks this naming convention.
import 'package:collection/collection.dart';
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| if (!enableDebugLogging) { | ||
| return _rpcCallback(request); | ||
| } |
There was a problem hiding this comment.
The logic is inverted: when debug logging is disabled, the function returns early without logging, but when enabled, it falls through to logging code. However, this means debug logging only works when enableDebugLogging is true, which contradicts the early return. The condition should be if (!enableDebugLogging) with the simple return path, or the logic flow needs restructuring to ensure logging happens when enabled.
|
Visit the preview URL for this PR (updated for commit 0b23126): https://kdf-sdk--pr257-dev-uar4w2zt.web.app (expires Sun, 02 Nov 2025 12:16:36 GMT) 🔥 via Firebase Hosting GitHub Action 🌎 Sign: 9c1b6e6c010cf0b965c455ba7a69c4aedafa8a1d |
|
Visit the preview URL for this PR (updated for commit 0b23126): https://komodo-playground--pr257-dev-hjwoqjd7.web.app (expires Sun, 02 Nov 2025 12:17:30 GMT) 🔥 via Firebase Hosting GitHub Action 🌎 Sign: 2bfedd77fdea45b25ba7c784416e81f177aa5c47 |
Summary by CodeRabbit
New Features
Bug Fixes
Chores