Add SwapExecutor with connector-level retry#142
Open
fengtality wants to merge 10 commits intomainfrom
Open
Conversation
- Register SwapExecutor in EXECUTOR_REGISTRY - Add swap_executor to available executor types Requires: hummingbot/hummingbot#8117 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Tokens are available immediately after adding - no Gateway restart needed. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add get_bot_lp_history() method to BotsOrchestrator
- Add GET /{bot_name}/lphistory endpoint to bot_orchestration router
- Add "lphistory" to known MQTT command channels
Returns LP-specific data: position_address, order_action, fees collected,
price ranges, and amounts for AMM/CLMM strategies like Meteora.
Fixes #132
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add swap_executor to EXECUTOR_TYPES for single swaps via Gateway - Add swap_executor example in CreateExecutorRequest - Handle swap_executor using network instead of connector_name - Make trading_pair optional for lp_executor (resolved from pool_address) - Update lp_executor example with simplified config Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Create GatewaySwap connector for router-type connectors (e.g., jupiter/router) - Update executor_service to ensure swap connector is loaded before execution - Add database access documentation for debugging executors Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This file contains user-specific config and shouldn't be modified in the PR. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
c1953f0 to
51f48de
Compare
- Remove wallet_address param from poll_transaction (Gateway PR #620) - Handle new txStatus=-1 for failed transactions - Use Gateway's parsed error messages (e.g., "SLIPPAGE_EXCEEDED (0x1771): ...") - Fallback to meta.err if parsed error not available Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The executor_service validates that connector_name is required for swap_executor, but the example in models/executors.py was missing it. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Contributor
|
Commit 6aafc3b
Pending:
|
- Consolidate swap_executor and lp_executor validation into single block - Network is optional - uses connector's defaultNetwork if not provided - Executor handles connector normalization in on_start Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Contributor
|
PR update:
Verify swap_executor can be created via POST /executors/ ✅
Verify swap completes with retry on pending transactions ✅
Verify swap completes with retry on pending transactions ✅
Verify order is created in
|
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
Key Changes
services/unified_connector_service.py: Distinguish between GatewaySwap (router) and GatewayLp (clmm/amm) connectorsservices/executor_service.py: Ensure swap connector is loaded viaensure_connector()before executor startsservices/gateway_client.py: Remove wallet_address param from poll_transactionservices/gateway_transaction_poller.py: Handle new txStatus=-1 and parsed error messagesRelated PRs
Dependencies
Test plan
/executors/types/available/executors/orderstabletradestable🤖 Generated with Claude Code