Releases: outsmartchad/outsmart-cli
v2.0.0-alpha.14
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 onIDexAdapterinterface)
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
Fix: Raydium CPMM decimal offsets
- Corrected
mint_0_decimals/mint_1_decimalsbyte 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
What's New
gRPC Oracle Keeper (Yellowstone/Geyser)
- New
GrpcKeeperclass 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_URLandGRPC_XTOKENenv vars
Full Changelog
src/dex/percolator/grpc-keeper.ts— GrpcKeeper class (732 lines)scripts/grpc-keeper.ts— standalone gRPC keeper entry pointsrc/cli.ts—perp grpc-keepersubcommandsrc/index.ts— GrpcKeeper + GrpcKeeperOptions exportsREADME.md— gRPC keeper docs, env vars, project structure
v2.0.0-alpha.11
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
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 — TradeCpi fix + 13/13 tests passing
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, was0)mode:0(passive, was1/vAMM)tradingFeeBps/baseSpreadBps/maxTotalBps:50/50/200bpsliquidityNotionalE6:10^13($10M notional)
Full Percolator Integration — All 13 devnet tests pass
Complete lifecycle tested end-to-end on Solana devnet:
- Create market (10-step with vAMM matcher) ✅
- Init user (trader account) ✅
- Deposit collateral ✅
- Push oracle price ✅
- Keeper crank ✅
- Open long position ✅ (was failing with EngineOverflow)
- Read market state ✅
- Find my position ✅
- Close position ✅
- Verify flat ✅
- Withdraw collateral ✅
- Close account ✅
- Discover markets ✅
Other changes
- Updated vendored
@percolator/coreaccounts.ts with all account specs - Added
encodeCloseSlab,encodeAdminForceCloseto 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.9v2.0.0-alpha.8 — Devnet/Mainnet dual RPC
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
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 managementtrade()— TradeCpi (long/short via vAMM)crank()/pushOraclePrice()/liquidate()— market operationscreateInsuranceMint()/depositInsuranceLP()/withdrawInsuranceLP()— insurance fundgetMarketState()/getMyPosition()/discoverMarkets()— read-only queries
Key features:
- Admin-oracle mode for full agent control over price feeds
- Vendored
@percolator/coreSDK (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.7v2.0.0-alpha.6
Changes
- Export
CreateCustomPoolParams,CreateConfigPoolParams,PoolFeeConfigtypes from library API - Export
PumpFunAdapterclass for token creation - These exports enable
outsmart-agentto wrap pool creation and PumpFun launches as MCP tools
npm: npm install outsmart@2.0.0-alpha.6
v2.0.0-alpha.5
Changes
- Add
registerAllAdapters()export — enables library consumers (likeoutsmart-agent) to register all 18 DEX adapters with a single async call - Vulnerability fixes — dropped
@metaplex-foundation/jsand@bloxroute/solana-trader-client-ts, added overrides (20 vulns → 3) - Production hardening — TX simulation before send, RPC backoff with retries,
--dry-runflag - Reduced test amounts — 0.002 SOL per test trade
- Fixed DLMM SDK — handle
claimSwapFeereturningTransaction[] - Library exports —
getWallet,getConnection,sendAndConfirmVtx,sendAndConfirmLegacyTx, etc.
Install
npm install outsmart@2.0.0-alpha.5Full changelog: https://github.com/outsmartchad/outsmart-cli/commits/agent-trading-infra