MP test#19
Open
leolambo wants to merge 17 commits into
Open
Conversation
…-provider-guide
Implements the error class hierarchy used by external API adapters (Moralis/Alchemy) to classify failures for circuit breaker and failover decisions. Includes 7 AdapterError subclasses with isBreakerable flags plus AllProvidersUnavailableError for orchestrator. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…i-provider failover Implements CircuitBreaker class with composite key (chain:network:provider), configurable failure thresholds (consecutive + rate-based), timeout-driven HALF_OPEN probing with in-flight permit tracking, and metrics reporting. Includes 36 comprehensive unit tests covering all state transitions. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…fig config type Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…vider Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… binary search block-by-date Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…th sequential failover Implements the core orchestrator that wires adapters + circuit breakers + sequential failover for multi-provider EVM transaction lookups, address streaming, and wallet streaming. Key features: - Per-network provider arrays with independent circuit breakers - withBreakerAttempt helper guaranteeing permit release on any throw - Preflight stream check buffering first item before committing to a provider - Floor semantics enforcement via RPC for adapter block-by-date results - Public getTransaction override letting AllProvidersUnavailableError and InvalidRequestError propagate for correct HTTP 503/400 mapping - Provider ordering by priority ascending, then name lexicographically - getBlockBeforeTime override using indexed API providers instead of Bitcoin collections Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Registers MultiProviderEVMStateProvider as CSP with EVMRouter and MoralisP2PWorker. Activated by setting module: './multiProvider' in bitcore chain config. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…error logging Prevent API keys (e.g. Alchemy v2/v3 path keys, query param keys) from appearing in error logs by redacting them before they are stored in err.log objects. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…idRequestError to 400 in routes Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ests Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…orts from alchemy tests Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…vider Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Replace console.error with logger.error in orchestrator - Document 503-over-404 edge case in _getTransaction - Fix redactUrl to preserve version number in path Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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.
Description
Link to an issue if one exists and/or briefly describe what this PR does and why it's needed.
Changelog
Testing Notes
Add any helpful notes for reviewers to test your code here.
Checklist
BWCif modifying the bitcore-wallet-client package,CLIif modifying the bitcore-cli package, etc.)