Skip to content

feat / Network-first pools management and default networks feature#76

Merged
rapcmia merged 20 commits into
mainfrom
feat/network-pools-management
May 12, 2026
Merged

feat / Network-first pools management and default networks feature#76
rapcmia merged 20 commits into
mainfrom
feat/network-pools-management

Conversation

@fengtality
Copy link
Copy Markdown
Contributor

@fengtality fengtality commented Apr 28, 2026

Summary

  • Add Orca pool listing to /lp menu with full feature parity with Meteora
  • Fix pool pair display truncation (quote asset was being cut off)
  • Fix chart not showing: add missing context parameter to fetch_liquidity_bins
  • Fix Y-axis range for OHLCV chart (was starting from 0, squishing candles)
  • Show full pool address for easy copy/paste instead of truncated version

Related PRs

Test plan

  • Manual testing of Orca pool listing
  • Verify chart displays with proper Y-axis range
  • Verify full address is displayed and copyable

🤖 Generated with Claude Code

fengtality and others added 7 commits April 28, 2026 13:59
Telegram Handlers:
- Update show_connector_pools() to use get_network_pools()
- Update prompt_remove_pool() to use get_network_pools()
- Update remove_pool() to use delete_network_pool()
- Update handle_pool_input() to use add_network_pool()
- Get chain from connector data for network_id construction

MCP Tools:
- Update pools list action to use network_id parameter
- Update pools add action to use add_network_pool()
- Add pools delete action using delete_network_pool()
- Update error messages to guide users on network_id format

These changes align with hummingbot-api updates that organize pools
by network (chain-network format) instead of by connector.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Changed from connector-first to network-first selection
- Now shows list of networks (like tokens menu)
- Pools displayed with pagination and grid layout
- Pool details show connector, type, fee, and address
- Add pool now uses format: connector,pool_type,address
- Uses network_id directly instead of building from connector chain

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Adding and removing pools takes effect immediately without
requiring a gateway restart.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Added get_default_networks() helper to fetch default_networks from
  solana-mainnet-beta and ethereum-mainnet configs
- Tokens menu now shows only default networks with "All Networks" button
- Pools menu now shows only default networks with "All Networks" button
- Networks detail view shows default status with toggle button
- Users can add/remove networks from defaults via the toggle button

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Networks that are in default_networks now show ✓ prefix
- Updated message to show default count and explain checkmark meaning

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Abbreviate long base token names with ellipsis
- Always show full quote token symbol
- Fix truncation issue where quote asset was cut off

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
fengtality and others added 4 commits April 28, 2026 17:42
- Add Orca to /lp explore pools menu
- Support both Meteora and Orca connectors in pool listing
- Store connector in context for pool selection
- Add connector field to pool dicts for proper handling
- Update headers to show connector name (Meteora/Orca)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add missing context parameter to fetch_liquidity_bins function
- Pass context to all fetch_liquidity_bins calls in pools.py and geckoterminal.py
- Show full pool address in code block for easy copy/paste instead of truncated

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The Y-axis was starting from 0, squishing candles at the top when prices
were high (e.g., 50). Now calculates range from OHLCV lows/highs with 5%
padding for proper candle visibility.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
fengtality and others added 5 commits April 29, 2026 18:00
- Add Orca and PancakeSwap to supported CLMM connectors
- Add save_network_token and save_network_pool actions to MCP tools
- Update lp_executor guide with setup workflow and EVM support
- Add default wallet indicator (⭐️) to wallet list and details
- Add "Set as Default" wallet functionality
- Fix token pagination "Next" button not working
- Remove outdated "restart gateway" messages from token handlers
- Add Uniswap/PancakeSwap support to pool URL generation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add new RPC Providers menu to Gateway configuration
- Support for Helius (Solana) and Infura (Ethereum) API key management
- Custom URL configuration for any network
- Two-step process: add API key, then activate as RPC provider
- Shows current status (active, has key, not configured)
- Network selection follows same pattern as Pools menu (defaults + All)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@rapcmia rapcmia changed the title Network-first pools management and default networks feature feat / Network-first pools management and default networks feature May 8, 2026
@rapcmia
Copy link
Copy Markdown
Contributor

rapcmia commented May 8, 2026

Test update

  • Test /lp menu and Orca menu buttons ✅
  • Test /gateway wallet management - verify ⭐️ indicator for default wallet ✅
  • Test /gateway "Set as Default" wallet button ❌
    • When setting up a wallet as default, Error loading RPC providers GatewayRouter object has no get_api_keys
      image
      2026-05-08 16:44:05,969 - handlers.config.gateway._shared - ERROR - Error setting default wallet: 'AccountsRouter' object has no attribute 'set_default_gateway_wallet'
      Traceback (most recent call last):
        File "/home/eddga/hummingbot/condor/76/handlers/config/gateway/wallets.py", line 979, in set_default_wallet
          await client.accounts.set_default_gateway_wallet(chain=chain, address=address)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      AttributeError: 'AccountsRouter' object has no attribute 'set_default_gateway_wallet'
      
  • Test /gateway adding tokens - no "restart gateway" message should appear ✅
  • Test /gateway RPC Providers menu - add Helius/Infura API keys ❌
    image
    2026-05-08 16:51:19,266 - handlers.config.gateway._shared - ERROR - Error showing RPC providers: 'GatewayRouter' object has no attribute 'get_api_keys'
    Traceback (most recent call last):
      File "/home/eddga/hummingbot/condor/76/handlers/config/gateway/rpc_providers.py", line 43, in show_rpc_providers_menu
        api_keys = await client.gateway.get_api_keys()
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    AttributeError: 'GatewayRouter' object has no attribute 'get_api_keys'
    
  • Test /gateway RPC Providers Custom URL menu - edit node URLs for networks blocked
  • Test creating LP executors via Telegram chat mode ✅

fengtality and others added 4 commits May 8, 2026 13:47
RPC Providers (#94 related):
- Add awaiting_rpc_input to text input routing in config/__init__.py
- Add RPC state cleanup to clear_all_input_states
- Improve error handling in rpc_providers.py input handlers

GeckoTerminal token add (#94):
- Replace get_default_client() with get_client() (4 occurrences)
- Fixes: 'ConfigManager' object has no attribute 'get_default_client'

LP position actions (#93):
- Add fallback to reply_text when edit_text fails on media messages
- Fixes: "There is no text in the message to edit" error
- Applied to handle_pos_collect_fees, handle_pos_close_confirm,
  handle_pos_close_execute

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Change prompt to "Do you want to use the new nodeURL for this network?"
- Change button to "Yes, use new URL"

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use npx to invoke Gemini CLI and GitHub Copilot CLI instead of relying
on direct binaries in PATH. This ensures the commands work regardless
of how Node.js is installed (nvm, system, etc.).

- gemini: `npx @google/gemini-cli --acp` (also fixes deprecated --experimental-acp flag)
- copilot: `npx @github/copilot --acp --stdio`

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Copy link
Copy Markdown
Contributor

@rapcmia rapcmia left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Setup this PR on source using make install; make run on localhost (linux, ubuntu24.04LTS)
  • Setup with the ff:
  • Test /lp menu {meteora, gecko and orca)
    • Searched pool address ok
    • Add liquidity ok
    • Collect fees ok
    • Close position ok
  • Test /gateway
    • wallet management: Set the default wallet, verify the portfolio, then switch wallets again to confirm the portfolio updates correctly.
    • adding tokens w/o restart ok
    • New RPC Provider buttton works as expected
    • Added Helius/infura ok
    • Activate / Deactivate (does not restart gateway)
    • Add custom url
    • If rpc provider is activated, it will prompt you to choose whether retain or change to url
    • Uses the set RPC url ok
  • Test Lp executor on Telegram chat mode
    • Successfully opened position on ORCA PYUSD-USDC pool
    • Suggest agent to monitor for 3minutes then stop/close

@rapcmia rapcmia merged commit 9f2c256 into main May 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants