tag:github.com,2008:https://github.com/outsmartchad/outsmart-cli/releases
Release notes from outsmart-cli
2026-02-23T07:04:46Z
tag:github.com,2008:Repository/807597872/v2.0.0-alpha.14
2026-02-23T07:05:04Z
v2.0.0-alpha.14
<h2>Fix: Mainnet byte offsets for all 8 DEX decoders</h2>
<h3>Changes</h3>
<ul>
<li><strong>DAMM v2</strong>: Moved to vault-based pricing (offsets 168/200/232/264), removed unreliable sqrtPrice decode; decimals fetched from mint accounts at startup</li>
<li><strong>DBC</strong>: Moved to SDK-based pricing via <code>adapter.getPrice()</code>, resolves bonding curve price calculation that raw sqrtPrice offsets couldn't handle</li>
<li>Added null check for <code>adapter.getPrice</code> (optional on <code>IDexAdapter</code> interface)</li>
</ul>
<h3>Verified on Mainnet</h3>
<p>All 8 DEX decoders tested and producing correct prices:</p>
<table>
<thead>
<tr>
<th>DEX</th>
<th>Price</th>
<th>Status</th>
</tr>
</thead>
<tbody>
<tr>
<td>Raydium CPMM</td>
<td>0.000448 SOL</td>
<td>✅</td>
</tr>
<tr>
<td>Raydium AMM v4</td>
<td>0.00204 SOL</td>
<td>✅</td>
</tr>
<tr>
<td>Raydium CLMM</td>
<td>131.89 (RAY/SOL)</td>
<td>✅</td>
</tr>
<tr>
<td>Raydium LaunchLab</td>
<td>0.0000041</td>
<td>✅</td>
</tr>
<tr>
<td>PumpSwap</td>
<td>0.0000871 SOL</td>
<td>✅</td>
</tr>
<tr>
<td>Meteora DAMM v2</td>
<td>0.00201 SOL</td>
<td>✅</td>
</tr>
<tr>
<td>Meteora DBC</td>
<td>3.62e-8 SOL (SDK)</td>
<td>✅</td>
</tr>
<tr>
<td>Meteora DLMM</td>
<td>0.00247 SOL (SDK)</td>
<td>✅</td>
</tr>
</tbody>
</table>
outsmartchad
tag:github.com,2008:Repository/807597872/v2.0.0-alpha.13
2026-02-23T07:05:25Z
v2.0.0-alpha.13
<h2>Fix: Raydium CPMM decimal offsets</h2>
<ul>
<li>Corrected <code>mint_0_decimals</code> / <code>mint_1_decimals</code> byte offsets from 323/324 to <strong>331/332</strong></li>
<li>Root cause: missing <code>observation_key</code> (32 bytes at offset 296) in the pool layout map</li>
<li>Verified on mainnet pool <code>Q2sPHPd...</code> (SOL/USELESS): decimals now read as 9/6 (correct)</li>
</ul>
outsmartchad
tag:github.com,2008:Repository/807597872/v2.0.0-alpha.12
2026-02-23T06:13:35Z
v2.0.0-alpha.12 — gRPC Oracle Keeper
<h2>What's New</h2>
<h3>gRPC Oracle Keeper (Yellowstone/Geyser)</h3>
<ul>
<li>New <code>GrpcKeeper</code> class using Yellowstone gRPC account subscriptions for production-grade oracle price pushing</li>
<li>More reliable than WebSocket: auto-reconnect, ping keepalive, processed commitment level</li>
<li>Supports all 8 DEX types: Raydium CPMM/AMM v4/CLMM/LaunchLab, PumpSwap, Meteora DAMM v2/DBC/DLMM</li>
<li>CLI: <code>outsmart perp grpc-keeper --pool <POOL> --market <MARKET> --dex <DEX> [-n devnet]</code></li>
<li>Standalone script: <code>npx tsx scripts/grpc-keeper.ts</code></li>
<li>Requires <code>GRPC_URL</code> and <code>GRPC_XTOKEN</code> env vars</li>
</ul>
<h3>Full Changelog</h3>
<ul>
<li><code>src/dex/percolator/grpc-keeper.ts</code> — GrpcKeeper class (732 lines)</li>
<li><code>scripts/grpc-keeper.ts</code> — standalone gRPC keeper entry point</li>
<li><code>src/cli.ts</code> — <code>perp grpc-keeper</code> subcommand</li>
<li><code>src/index.ts</code> — GrpcKeeper + GrpcKeeperOptions exports</li>
<li><code>README.md</code> — gRPC keeper docs, env vars, project structure</li>
</ul>
outsmartchad
tag:github.com,2008:Repository/807597872/v2.0.0-alpha.11
2026-02-23T05:46:40Z
v2.0.0-alpha.11
<p>feat: WebSocket oracle keeper for 8 DEX types (raydium-cpmm, amm-v4, clmm, launchlab, pumpswap, meteora-damm-v2, dbc, dlmm)</p>
outsmartchad
tag:github.com,2008:Repository/807597872/v2.0.0-alpha.10
2026-02-23T04:20:35Z
v2.0.0-alpha.10
<h2>What's New</h2>
<h3>Pyth Oracle Support</h3>
<ul>
<li>Create Pyth-pinned perp markets with <code>--oracle <feedId></code> — price reads come from Pyth on-chain, no manual pushing needed</li>
<li>Admin-oracle (Hyperp) mode unchanged for memecoins without Pyth feeds</li>
<li>crank, trade, and liquidate auto-detect oracle mode from slab state</li>
</ul>
<h3>Oracle Keeper Bot</h3>
<ul>
<li><code>scripts/keeper.ts</code> — polling-based bot that pushes prices from Jupiter Price API to admin-oracle markets</li>
<li>Skips unchanged prices to save SOL</li>
<li>Usage: <code>npm run keeper -- --market <SLAB> --token <MINT> --interval 10</code></li>
</ul>
<h3>Perp CLI Commands (from alpha.9)</h3>
<ul>
<li>11 subcommands: long, short, close, status, deposit, withdraw, init-user, create-market, set-price, crank, markets</li>
<li>SOL-denominated inputs, USD prices, auto-crank before trades, quiet mode</li>
</ul>
<h3>Full Changelog</h3>
<p><a class="commit-link" href="https://github.com/outsmartchad/outsmart-cli/compare/v2.0.0-alpha.9...v2.0.0-alpha.10"><tt>v2.0.0-alpha.9...v2.0.0-alpha.10</tt></a></p>
outsmartchad
tag:github.com,2008:Repository/807597872/v2.0.0-alpha.9
2026-02-22T15:28:02Z
v2.0.0-alpha.9 — TradeCpi fix + 13/13 tests passing
<h2>What's New</h2>
<h3>TradeCpi EngineOverflow Fixed (Phase H breakthrough)</h3>
<p><strong>Root cause:</strong> The vAMM matcher's <code>maxFillAbs</code> was set to <code>0n</code>, meaning the matcher literally couldn't fill any trade — it returned <code>exec_size = 0</code> (zero-fill), which the engine rejected as <code>size == 0 → RiskError::Overflow</code>.</p>
<p><strong>Fix:</strong> Updated default vAMM params to match the production app (<code>percolator-launch/app/hooks/useVAMM.ts</code>):</p>
<ul>
<li><code>maxFillAbs</code>: <code>10^17</code> (effectively unlimited, was <code>0</code>)</li>
<li><code>mode</code>: <code>0</code> (passive, was <code>1</code>/vAMM)</li>
<li><code>tradingFeeBps/baseSpreadBps/maxTotalBps</code>: <code>50/50/200</code> bps</li>
<li><code>liquidityNotionalE6</code>: <code>10^13</code> ($10M notional)</li>
</ul>
<h3>Full Percolator Integration — All 13 devnet tests pass</h3>
<p>Complete lifecycle tested end-to-end on Solana devnet:</p>
<ol>
<li>Create market (10-step with vAMM matcher) ✅</li>
<li>Init user (trader account) ✅</li>
<li>Deposit collateral ✅</li>
<li>Push oracle price ✅</li>
<li>Keeper crank ✅</li>
<li><strong>Open long position</strong> ✅ (was failing with EngineOverflow)</li>
<li>Read market state ✅</li>
<li>Find my position ✅</li>
<li><strong>Close position</strong> ✅</li>
<li>Verify flat ✅</li>
<li>Withdraw collateral ✅</li>
<li>Close account ✅</li>
<li>Discover markets ✅</li>
</ol>
<h3>Other changes</h3>
<ul>
<li>Updated vendored <code>@percolator/core</code> accounts.ts with all account specs</li>
<li>Added <code>encodeCloseSlab</code>, <code>encodeAdminForceClose</code> to vendored SDK</li>
<li>18 adapter methods including teardown, adminForceClose, closeSlab</li>
<li>Updated README.md and docs/index.html with Percolator section</li>
<li>Removed debug logging from trade() method</li>
<li>Withdraw test reads actual remaining capital</li>
</ul>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="npm install outsmart@2.0.0-alpha.9"><pre>npm install outsmart@2.0.0-alpha.9</pre></div>
outsmartchad
tag:github.com,2008:Repository/807597872/v2.0.0-alpha.8
2026-02-22T14:03:58Z
v2.0.0-alpha.8 — Devnet/Mainnet dual RPC
<p>PercolatorAdapter now picks DEVNET_ENDPOINT or MAINNET_ENDPOINT based on the network param. All methods route to the correct RPC automatically.</p>
outsmartchad
tag:github.com,2008:Repository/807597872/v2.0.0-alpha.7
2026-02-22T13:55:16Z
v2.0.0-alpha.7 — Percolator Perpetual Futures Adapter
<h2>What's New</h2>
<h3>PercolatorAdapter (Phase H1)</h3>
<p>Standalone adapter for Percolator perpetual futures protocol. Creates and operates AI-powered perp exchanges on Solana.</p>
<p><strong>15 methods:</strong></p>
<ul>
<li><code>createMarket()</code> — full 10-step market lifecycle (slab → init → oracle → crank → vAMM → LP)</li>
<li><code>initUser()</code> / <code>deposit()</code> / <code>withdraw()</code> / <code>closeAccount()</code> — account management</li>
<li><code>trade()</code> — TradeCpi (long/short via vAMM)</li>
<li><code>crank()</code> / <code>pushOraclePrice()</code> / <code>liquidate()</code> — market operations</li>
<li><code>createInsuranceMint()</code> / <code>depositInsuranceLP()</code> / <code>withdrawInsuranceLP()</code> — insurance fund</li>
<li><code>getMarketState()</code> / <code>getMyPosition()</code> / <code>discoverMarkets()</code> — read-only queries</li>
</ul>
<p><strong>Key features:</strong></p>
<ul>
<li>Admin-oracle mode for full agent control over price feeds</li>
<li>Vendored <code>@percolator/core</code> SDK (zero external deps beyond @solana/web3.js)</li>
<li>Devnet programs deployed (small/medium/large tiers + matcher)</li>
<li>Math utilities: PnL, liquidation price, margin, funding rate, vAMM quotes</li>
</ul>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="npm install outsmart@2.0.0-alpha.7"><pre>npm install outsmart@2.0.0-alpha.7</pre></div>
outsmartchad
tag:github.com,2008:Repository/807597872/v2.0.0-alpha.6
2026-02-22T10:41:53Z
v2.0.0-alpha.6
<h2>Changes</h2>
<ul>
<li>Export <code>CreateCustomPoolParams</code>, <code>CreateConfigPoolParams</code>, <code>PoolFeeConfig</code> types from library API</li>
<li>Export <code>PumpFunAdapter</code> class for token creation</li>
<li>These exports enable <code>outsmart-agent</code> to wrap pool creation and PumpFun launches as MCP tools</li>
</ul>
<p><strong>npm:</strong> <code>npm install outsmart@2.0.0-alpha.6</code></p>
outsmartchad
tag:github.com,2008:Repository/807597872/v2.0.0-alpha.5
2026-02-22T03:28:35Z
v2.0.0-alpha.5
<h2>Changes</h2>
<ul>
<li><strong>Add <code>registerAllAdapters()</code> export</strong> — enables library consumers (like <code>outsmart-agent</code>) to register all 18 DEX adapters with a single async call</li>
<li><strong>Vulnerability fixes</strong> — dropped <code>@metaplex-foundation/js</code> and <code>@bloxroute/solana-trader-client-ts</code>, added overrides (20 vulns → 3)</li>
<li><strong>Production hardening</strong> — TX simulation before send, RPC backoff with retries, <code>--dry-run</code> flag</li>
<li><strong>Reduced test amounts</strong> — 0.002 SOL per test trade</li>
<li><strong>Fixed DLMM SDK</strong> — handle <code>claimSwapFee</code> returning <code>Transaction[]</code></li>
<li><strong>Library exports</strong> — <code>getWallet</code>, <code>getConnection</code>, <code>sendAndConfirmVtx</code>, <code>sendAndConfirmLegacyTx</code>, etc.</li>
</ul>
<h2>Install</h2>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="npm install outsmart@2.0.0-alpha.5"><pre>npm install outsmart@2.0.0-alpha.5</pre></div>
<p>Full changelog: <a href="https://github.com/outsmartchad/outsmart-cli/commits/agent-trading-infra">https://github.com/outsmartchad/outsmart-cli/commits/agent-trading-infra</a></p>
outsmartchad