Skip to content

Releases: outsmartchad/outsmart-cli

v2.0.0-alpha.14

23 Feb 07:05

Choose a tag to compare

v2.0.0-alpha.14 Pre-release
Pre-release

Fix: Mainnet byte offsets for all 8 DEX decoders

Changes

  • DAMM v2: Moved to vault-based pricing (offsets 168/200/232/264), removed unreliable sqrtPrice decode; decimals fetched from mint accounts at startup
  • DBC: Moved to SDK-based pricing via adapter.getPrice(), resolves bonding curve price calculation that raw sqrtPrice offsets couldn't handle
  • Added null check for adapter.getPrice (optional on IDexAdapter interface)

Verified on Mainnet

All 8 DEX decoders tested and producing correct prices:

DEX Price Status
Raydium CPMM 0.000448 SOL
Raydium AMM v4 0.00204 SOL
Raydium CLMM 131.89 (RAY/SOL)
Raydium LaunchLab 0.0000041
PumpSwap 0.0000871 SOL
Meteora DAMM v2 0.00201 SOL
Meteora DBC 3.62e-8 SOL (SDK)
Meteora DLMM 0.00247 SOL (SDK)

v2.0.0-alpha.13

23 Feb 07:05

Choose a tag to compare

v2.0.0-alpha.13 Pre-release
Pre-release

Fix: Raydium CPMM decimal offsets

  • Corrected mint_0_decimals / mint_1_decimals byte offsets from 323/324 to 331/332
  • Root cause: missing observation_key (32 bytes at offset 296) in the pool layout map
  • Verified on mainnet pool Q2sPHPd... (SOL/USELESS): decimals now read as 9/6 (correct)

v2.0.0-alpha.12 — gRPC Oracle Keeper

23 Feb 06:13

Choose a tag to compare

Pre-release

What's New

gRPC Oracle Keeper (Yellowstone/Geyser)

  • New GrpcKeeper class using Yellowstone gRPC account subscriptions for production-grade oracle price pushing
  • More reliable than WebSocket: auto-reconnect, ping keepalive, processed commitment level
  • Supports all 8 DEX types: Raydium CPMM/AMM v4/CLMM/LaunchLab, PumpSwap, Meteora DAMM v2/DBC/DLMM
  • CLI: outsmart perp grpc-keeper --pool <POOL> --market <MARKET> --dex <DEX> [-n devnet]
  • Standalone script: npx tsx scripts/grpc-keeper.ts
  • Requires GRPC_URL and GRPC_XTOKEN env vars

Full Changelog

  • src/dex/percolator/grpc-keeper.ts — GrpcKeeper class (732 lines)
  • scripts/grpc-keeper.ts — standalone gRPC keeper entry point
  • src/cli.tsperp grpc-keeper subcommand
  • src/index.ts — GrpcKeeper + GrpcKeeperOptions exports
  • README.md — gRPC keeper docs, env vars, project structure

v2.0.0-alpha.11

23 Feb 05:46

Choose a tag to compare

v2.0.0-alpha.11 Pre-release
Pre-release

feat: WebSocket oracle keeper for 8 DEX types (raydium-cpmm, amm-v4, clmm, launchlab, pumpswap, meteora-damm-v2, dbc, dlmm)

v2.0.0-alpha.10

23 Feb 04:20

Choose a tag to compare

v2.0.0-alpha.10 Pre-release
Pre-release

What's New

Pyth Oracle Support

  • Create Pyth-pinned perp markets with --oracle <feedId> — price reads come from Pyth on-chain, no manual pushing needed
  • Admin-oracle (Hyperp) mode unchanged for memecoins without Pyth feeds
  • crank, trade, and liquidate auto-detect oracle mode from slab state

Oracle Keeper Bot

  • scripts/keeper.ts — polling-based bot that pushes prices from Jupiter Price API to admin-oracle markets
  • Skips unchanged prices to save SOL
  • Usage: npm run keeper -- --market <SLAB> --token <MINT> --interval 10

Perp CLI Commands (from alpha.9)

  • 11 subcommands: long, short, close, status, deposit, withdraw, init-user, create-market, set-price, crank, markets
  • SOL-denominated inputs, USD prices, auto-crank before trades, quiet mode

Full Changelog

v2.0.0-alpha.9...v2.0.0-alpha.10

v2.0.0-alpha.9 — TradeCpi fix + 13/13 tests passing

22 Feb 15:28

Choose a tag to compare

What's New

TradeCpi EngineOverflow Fixed (Phase H breakthrough)

Root cause: The vAMM matcher's maxFillAbs was set to 0n, meaning the matcher literally couldn't fill any trade — it returned exec_size = 0 (zero-fill), which the engine rejected as size == 0 → RiskError::Overflow.

Fix: Updated default vAMM params to match the production app (percolator-launch/app/hooks/useVAMM.ts):

  • maxFillAbs: 10^17 (effectively unlimited, was 0)
  • mode: 0 (passive, was 1/vAMM)
  • tradingFeeBps/baseSpreadBps/maxTotalBps: 50/50/200 bps
  • liquidityNotionalE6: 10^13 ($10M notional)

Full Percolator Integration — All 13 devnet tests pass

Complete lifecycle tested end-to-end on Solana devnet:

  1. Create market (10-step with vAMM matcher) ✅
  2. Init user (trader account) ✅
  3. Deposit collateral ✅
  4. Push oracle price ✅
  5. Keeper crank ✅
  6. Open long position ✅ (was failing with EngineOverflow)
  7. Read market state ✅
  8. Find my position ✅
  9. Close position
  10. Verify flat ✅
  11. Withdraw collateral ✅
  12. Close account ✅
  13. Discover markets ✅

Other changes

  • Updated vendored @percolator/core accounts.ts with all account specs
  • Added encodeCloseSlab, encodeAdminForceClose to vendored SDK
  • 18 adapter methods including teardown, adminForceClose, closeSlab
  • Updated README.md and docs/index.html with Percolator section
  • Removed debug logging from trade() method
  • Withdraw test reads actual remaining capital
npm install outsmart@2.0.0-alpha.9

v2.0.0-alpha.8 — Devnet/Mainnet dual RPC

22 Feb 14:03

Choose a tag to compare

PercolatorAdapter now picks DEVNET_ENDPOINT or MAINNET_ENDPOINT based on the network param. All methods route to the correct RPC automatically.

v2.0.0-alpha.7 — Percolator Perpetual Futures Adapter

22 Feb 13:55

Choose a tag to compare

What's New

PercolatorAdapter (Phase H1)

Standalone adapter for Percolator perpetual futures protocol. Creates and operates AI-powered perp exchanges on Solana.

15 methods:

  • createMarket() — full 10-step market lifecycle (slab → init → oracle → crank → vAMM → LP)
  • initUser() / deposit() / withdraw() / closeAccount() — account management
  • trade() — TradeCpi (long/short via vAMM)
  • crank() / pushOraclePrice() / liquidate() — market operations
  • createInsuranceMint() / depositInsuranceLP() / withdrawInsuranceLP() — insurance fund
  • getMarketState() / getMyPosition() / discoverMarkets() — read-only queries

Key features:

  • Admin-oracle mode for full agent control over price feeds
  • Vendored @percolator/core SDK (zero external deps beyond @solana/web3.js)
  • Devnet programs deployed (small/medium/large tiers + matcher)
  • Math utilities: PnL, liquidation price, margin, funding rate, vAMM quotes
npm install outsmart@2.0.0-alpha.7

v2.0.0-alpha.6

22 Feb 10:41

Choose a tag to compare

v2.0.0-alpha.6 Pre-release
Pre-release

Changes

  • Export CreateCustomPoolParams, CreateConfigPoolParams, PoolFeeConfig types from library API
  • Export PumpFunAdapter class for token creation
  • These exports enable outsmart-agent to wrap pool creation and PumpFun launches as MCP tools

npm: npm install outsmart@2.0.0-alpha.6

v2.0.0-alpha.5

22 Feb 03:28

Choose a tag to compare

v2.0.0-alpha.5 Pre-release
Pre-release

Changes

  • Add registerAllAdapters() export — enables library consumers (like outsmart-agent) to register all 18 DEX adapters with a single async call
  • Vulnerability fixes — dropped @metaplex-foundation/js and @bloxroute/solana-trader-client-ts, added overrides (20 vulns → 3)
  • Production hardening — TX simulation before send, RPC backoff with retries, --dry-run flag
  • Reduced test amounts — 0.002 SOL per test trade
  • Fixed DLMM SDK — handle claimSwapFee returning Transaction[]
  • Library exportsgetWallet, getConnection, sendAndConfirmVtx, sendAndConfirmLegacyTx, etc.

Install

npm install outsmart@2.0.0-alpha.5

Full changelog: https://github.com/outsmartchad/outsmart-cli/commits/agent-trading-infra