Skip to content

sync / Gateway development -> staging - #624

Merged
rapcmia merged 17 commits into
stagingfrom
development
Apr 18, 2026
Merged

sync / Gateway development -> staging#624
rapcmia merged 17 commits into
stagingfrom
development

Conversation

@nikspz

@nikspz nikspz commented Apr 15, 2026

Copy link
Copy Markdown
Contributor

Before submitting this PR, please make sure:

  • Your code builds clean without any errors or warnings
  • You are using approved title ("feat/", "fix/", "docs/", "refactor/")

A description of the changes proposed in the pull request:

Tests performed by the developer:

Tips for QA testing:

nikspz and others added 17 commits January 27, 2026 02:25
sync / staging -> main for Hummingbot version 2.12.0
sync / Gateway staging -> main for Hummingbot version 2.13.0
fix / update development version to dev-2.14
When a wallet that was set as the default for a chain gets deleted,
the system now automatically selects another available wallet as the
new default. If no wallets remain, the default wallet is cleared.

This prevents "Wallet not found" errors during balance polling when
the default wallet no longer exists.

Changes:
- Add getAllWalletAddressesForChain() utility function
- Update removeWallet() to handle default wallet reassignment
- Update hardware wallet removal to handle default wallet case

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The Solana RPC `meta.fee` field already includes both base fee and
priority fee. The previous code was extracting the priority fee from
compute budget instructions and adding it again, causing fees to be
reported as nearly double the actual amount.

This fix affects all connectors using sendAndConfirmTransaction:
- Meteora CLMM
- Orca CLMM

Note: Raydium and PancakeSwap-Sol were unaffected as they read
meta.fee directly.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add solana-error-parser.ts for parsing program error codes
- Parse on-chain transaction errors into user-friendly messages
- Simplify /poll endpoint: remove tokens/walletAddress params
- Include parsed error in poll response (TYPE (code): message)
- Add error helper functions: simulationFailed, insufficientBalance, slippageExceeded

Error codes supported:
- Jupiter: 6001 (slippage)
- Meteora DLMM: 6004, 6018, 6040
- Raydium CLMM: 6029-6031, 6037
- Orca Whirlpool: 6029-6031

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add specific error type for no-route scenarios that allows clients to
know they can retry with flipped direction (ExactIn vs ExactOut).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add lightweight http-client.ts using native fetch API (Node 20+)
- Migrate Jupiter, 0x, CoinGecko, and Etherscan services to use fetch
- Remove axios from production dependencies (keep in devDependencies)
- Add comprehensive tests for http-client module

This reduces supply chain attack surface by removing axios dependency
from the production bundle.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
fix/ auto-update default wallet when deleted wallet was the default
The noRouteFound error returns 400 (not 404) as it's not a "resource
not found" error but a "bad request" where no route exists.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…etch

refactor / replace axios with native fetch for HTTP requests
fix / remove double-counting of priority fee in getFee
@rapcmia
rapcmia merged commit 41ce6a1 into staging Apr 18, 2026
7 checks passed
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.

3 participants