Skip to content

security: remove insecure wallet endpoints#653

Merged
rapcmia merged 3 commits into
developmentfrom
security/remove-insecure-wallet-endpoints
Jun 22, 2026
Merged

security: remove insecure wallet endpoints#653
rapcmia merged 3 commits into
developmentfrom
security/remove-insecure-wallet-endpoints

Conversation

@fengtality

Copy link
Copy Markdown
Contributor

Summary

Removes three wallet endpoints that expose dangerous server-side key operations, and cleans up tests that no longer serve a purpose.

Removed endpoints (insecure)

  • POST /wallet/create — generated private keys server-side
  • POST /wallet/send — moved funds via the API
  • POST /wallet/show-private-key — returned decrypted private keys

Wallets must now be imported via POST /wallet/add with an externally generated key. The safe routes (GET /wallet, /add, /add-hardware, /remove, /set-default) are unchanged.

Also dropped the associated request/response schemas, util functions (createWallet, showPrivateKey, sendTransaction plus the Solana/Ethereum send helpers), and now-unused imports.

Test cleanup

  • Deleted wallet-new-routes.test.ts (only covered the removed routes)
  • Deleted meteora-sdk-integration.test.ts — the only suite hitting live mainnet RPC; it tested the third-party Meteora SDK's API shape, not Gateway code, and was timing out
  • Removed dead it.skip error-handling tests in the uniswap/pancakeswap universal-router quote-swap suites (their comments noted they could never run with the mock setup)

⚠️ Breaking change

Clients that called /wallet/create, /wallet/send, or /wallet/show-private-key will now receive 404s.

Testing

Full suite green: 102 suites / 947 tests passing (was 1 failing suite / 4 failing + 2 skipped before).

🤖 Generated with Claude Code

fengtality and others added 3 commits June 20, 2026 16:08
Remove three wallet endpoints that expose dangerous server-side key
operations:
- POST /wallet/create  (generates private keys server-side)
- POST /wallet/send     (moves funds via the API)
- POST /wallet/show-private-key (returns decrypted private keys)

Wallets must now be imported via POST /wallet/add with an externally
generated key. The safe routes (GET /wallet, /add, /add-hardware,
/remove, /set-default) are unchanged.

Also drop their request/response schemas, util functions
(createWallet, showPrivateKey, sendTransaction and the Solana/Ethereum
send helpers) and now-unused imports.

Test cleanup:
- Delete wallet-new-routes.test.ts (only covered the removed routes)
- Delete meteora-sdk-integration.test.ts (only suite hitting live RPC;
  tested third-party SDK shape, not Gateway code, and timed out)
- Remove dead it.skip error-handling tests in the uniswap/pancakeswap
  universal-router quote-swap suites

Full suite: 102 suites / 947 tests passing.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
pancakeswap-sol.test.ts hit real mainnet RPC (getClmmPoolInfo /
getPositionInfo against live pool and position addresses) with no
mocks, and never closed the Solana connection — causing 30s timeouts
and the "worker process failed to exit gracefully" leak warning.

Same class of unmocked live-network test as the meteora SDK suite
removed earlier. The mocked pancakeswap-sol clmm-routes tests are
unaffected.

Full suite: 101 suites / 943 tests passing.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@rapcmia rapcmia self-assigned this Jun 22, 2026

@rapcmia rapcmia left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM

  • Confirm POST /wallet/create, /wallet/send, and /wallet/show-private-key now return 404 ✅
    Image
    • No longer lists /wallet/create, /wallet/send, or /wallet/show-private-key.
    • The remaining wallet routes still shown in docs are /wallet/, /wallet/add, /wallet/add-hardware, /wallet/remove, and /wallet/setDefault.
    • All removed routes returned 404 Not Found with route-not-found messages.
    • The generated docs do not include /wallet/create, /wallet/send, or /wallet/show-private-key.
  • Verify the safe wallet routes still work: GET /wallet, POST /wallet/add, DELETE /wallet/remove, and POST /wallet/setDefault ✅
    • GET /wallet responded successfully before and after the wallet flow.
    • POST /wallet/add added the provided Solana wallet and returned address correct wallet address.
    • POST /wallet/setDefault succeeded for the added Solana wallet.
    • DELETE /wallet/remove succeeded and the final GET /wallet showed the wallet list empty again.

@rapcmia rapcmia merged commit 97f10ca into development Jun 22, 2026
5 checks passed
@rapcmia rapcmia deleted the security/remove-insecure-wallet-endpoints branch June 22, 2026 07:28
@rapcmia rapcmia mentioned this pull request Jun 22, 2026
2 tasks
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