|
| 1 | +<!DOCTYPE html> |
| 2 | +<html lang="en"> |
| 3 | +<head> |
| 4 | + <meta charset="UTF-8"> |
| 5 | + <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| 6 | + <title>Changelog - GmGnAPI Documentation</title> |
| 7 | + <link rel="stylesheet" href="assets/css/style.css"> |
| 8 | + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.24.1/themes/prism-tomorrow.min.css"> |
| 9 | + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css"> |
| 10 | + <meta name="description" content="GmGnAPI version history — new features, bug fixes, and breaking changes."> |
| 11 | + <style> |
| 12 | + .version-block { margin-bottom:2.5rem; } |
| 13 | + .version-header { display:flex; align-items:center; gap:1rem; margin-bottom:1rem; } |
| 14 | + .version-badge { background:var(--accent-color); color:#000; font-weight:700; padding:0.3rem 0.9rem; border-radius:2rem; font-size:0.9rem; } |
| 15 | + .version-date { color:var(--text-secondary); font-size:0.9rem; } |
| 16 | + .change-list { list-style:none; padding:0; } |
| 17 | + .change-list li { padding:0.5rem 0; border-bottom:1px solid var(--border-primary); display:flex; gap:0.75rem; align-items:flex-start; } |
| 18 | + .tag { display:inline-block; padding:0.2rem 0.6rem; border-radius:0.3rem; font-size:0.75rem; font-weight:700; white-space:nowrap; } |
| 19 | + .tag-new { background:rgba(34,197,94,0.15); color:#22c55e; } |
| 20 | + .tag-fix { background:rgba(239,68,68,0.15); color:#ef4444; } |
| 21 | + .tag-improve { background:rgba(59,130,246,0.15); color:#3b82f6; } |
| 22 | + .tag-break { background:rgba(245,158,11,0.15); color:#f59e0b; } |
| 23 | + </style> |
| 24 | +</head> |
| 25 | +<body> |
| 26 | + <div class="top-promo-banner"> |
| 27 | + <div class="container" style="display:flex;align-items:center;justify-content:center;gap:0.5rem;"> |
| 28 | + <span>🆕</span> |
| 29 | + <span>Keep up with new releases faster by writing your upgrade scripts in <a href="https://chipaeditor.com/?utm_source=docs&utm_medium=banner&utm_campaign=gmgn_api&utm_content=changelog_banner" target="_blank"><strong>Chipa Editor</strong></a>.</span> |
| 30 | + <a href="https://chipaeditor.com/?utm_source=docs&utm_medium=banner&utm_campaign=gmgn_api&utm_content=changelog_banner_cta" class="btn-banner-cta" target="_blank">Try free →</a> |
| 31 | + </div> |
| 32 | + </div> |
| 33 | + |
| 34 | + <nav class="navbar"> |
| 35 | + <div class="nav-container"> |
| 36 | + <div class="nav-logo"><span class="logo-icon">🚀</span><span class="logo-text">GmGnAPI</span></div> |
| 37 | + <ul class="nav-menu"> |
| 38 | + <li><a href="index.html" class="nav-link">Home</a></li> |
| 39 | + <li><a href="getting-started.html" class="nav-link">Getting Started</a></li> |
| 40 | + <li><a href="tutorials.html" class="nav-link">Tutorials</a></li> |
| 41 | + <li><a href="api-reference.html" class="nav-link">API Reference</a></li> |
| 42 | + <li><a href="examples.html" class="nav-link">Examples</a></li> |
| 43 | + <li><a href="advanced.html" class="nav-link">Advanced</a></li> |
| 44 | + <li><a href="filters-guide.html" class="nav-link">Filters</a></li> |
| 45 | + <li><a href="trading-bots.html" class="nav-link">Trading Bots</a></li> |
| 46 | + <li><a href="faq.html" class="nav-link">FAQ</a></li> |
| 47 | + <li><a href="community.html" class="nav-link">Community</a></li> |
| 48 | + <li><a href="changelog.html" class="nav-link active">Changelog</a></li> |
| 49 | + <li><a href="https://github.com/ChipaDevTeam/GmGnAPI" class="nav-link" target="_blank"><i class="fab fa-github"></i> GitHub</a></li> |
| 50 | + <li><a href="https://gmgn.ai/r/9dLKvFyE" class="nav-link btn-signup" target="_blank"><i class="fas fa-rocket"></i> Sign Up on GMGN</a></li> |
| 51 | + <li><a href="https://chipaeditor.com/?utm_source=docs&utm_medium=navbar&utm_campaign=gmgn_api&utm_content=changelog_nav" class="nav-link btn-chipa" target="_blank"><i class="fas fa-code"></i> Chipa Editor</a></li> |
| 52 | + </ul> |
| 53 | + <div class="hamburger"><span class="bar"></span><span class="bar"></span><span class="bar"></span></div> |
| 54 | + </div> |
| 55 | + </nav> |
| 56 | + |
| 57 | + <main style="margin-top:70px;"> |
| 58 | + <div class="container" style="padding:3rem 1.5rem;max-width:860px;"> |
| 59 | + <header class="page-header"> |
| 60 | + <h1><i class="fas fa-history" style="color:var(--accent-color)"></i> Changelog</h1> |
| 61 | + <p class="page-description"> |
| 62 | + All notable changes to GmGnAPI. Follows <a href="https://keepachangelog.com" target="_blank">Keep a Changelog</a> format and <a href="https://semver.org" target="_blank">Semantic Versioning</a>. |
| 63 | + </p> |
| 64 | + <div style="display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.5rem;"> |
| 65 | + <a href="https://github.com/ChipaDevTeam/GmGnAPI/releases" class="btn btn-secondary" target="_blank"><i class="fab fa-github"></i> GitHub Releases</a> |
| 66 | + <a href="https://discord.gg/ub46R9Dk" class="btn btn-accent" target="_blank"><i class="fab fa-discord"></i> Announce on Discord</a> |
| 67 | + </div> |
| 68 | + </header> |
| 69 | + |
| 70 | + <!-- v1.3.0 --> |
| 71 | + <div class="version-block" style="margin-top:3rem;"> |
| 72 | + <div class="version-header"> |
| 73 | + <span class="version-badge">v1.3.0</span> |
| 74 | + <span class="version-date">2025-06-01 — Latest</span> |
| 75 | + </div> |
| 76 | + <ul class="change-list"> |
| 77 | + <li><span class="tag tag-new">NEW</span> Added <code>subscribe_trending()</code> channel for GMGN trending token list updates</li> |
| 78 | + <li><span class="tag tag-new">NEW</span> <code>TokenFilter.max_holder_concentration</code> parameter to filter high-risk concentrated tokens</li> |
| 79 | + <li><span class="tag tag-new">NEW</span> <code>ConnectionConfig.ping_interval</code> and <code>ping_timeout</code> for keep-alive control</li> |
| 80 | + <li><span class="tag tag-improve">IMPROVE</span> Reconnection now re-subscribes all active channels automatically after reconnect</li> |
| 81 | + <li><span class="tag tag-improve">IMPROVE</span> Pydantic v2 migration complete — 40% faster model parsing</li> |
| 82 | + <li><span class="tag tag-fix">FIX</span> Race condition in <code>listen()</code> when multiple subscriptions were active simultaneously</li> |
| 83 | + <li><span class="tag tag-fix">FIX</span> Memory leak in long-running sessions when <code>on_statistics_update</code> was registered</li> |
| 84 | + </ul> |
| 85 | + </div> |
| 86 | + |
| 87 | + <!-- v1.2.0 --> |
| 88 | + <div class="version-block"> |
| 89 | + <div class="version-header"> |
| 90 | + <span class="version-badge" style="background:var(--text-secondary);color:var(--bg-primary);">v1.2.0</span> |
| 91 | + <span class="version-date">2025-04-15</span> |
| 92 | + </div> |
| 93 | + <ul class="change-list"> |
| 94 | + <li><span class="tag tag-new">NEW</span> <code>SQLiteExporter</code> and <code>CSVExporter</code> for persistent data storage</li> |
| 95 | + <li><span class="tag tag-new">NEW</span> <code>on_reconnect</code> event hook with attempt count parameter</li> |
| 96 | + <li><span class="tag tag-new">NEW</span> <code>subscribe_trades(address)</code> for individual transaction streams</li> |
| 97 | + <li><span class="tag tag-improve">IMPROVE</span> Exponential backoff now capped at 60 seconds (was uncapped)</li> |
| 98 | + <li><span class="tag tag-improve">IMPROVE</span> Type stubs (<code>.pyi</code> files) now shipped with the package for full IDE support</li> |
| 99 | + <li><span class="tag tag-fix">FIX</span> <code>on_raw_message</code> now fires before model validation, not after</li> |
| 100 | + <li><span class="tag tag-fix">FIX</span> <code>TokenFilter.chains</code> case-insensitive matching</li> |
| 101 | + </ul> |
| 102 | + </div> |
| 103 | + |
| 104 | + <!-- v1.1.0 --> |
| 105 | + <div class="version-block"> |
| 106 | + <div class="version-header"> |
| 107 | + <span class="version-badge" style="background:var(--text-secondary);color:var(--bg-primary);">v1.1.0</span> |
| 108 | + <span class="version-date">2025-02-28</span> |
| 109 | + </div> |
| 110 | + <ul class="change-list"> |
| 111 | + <li><span class="tag tag-new">NEW</span> <code>TokenFilter</code> class for declarative event filtering</li> |
| 112 | + <li><span class="tag tag-new">NEW</span> <code>on_statistics_update</code> hook with connection metrics</li> |
| 113 | + <li><span class="tag tag-new">NEW</span> <code>subscribe_token_updates(address)</code> for per-token monitoring</li> |
| 114 | + <li><span class="tag tag-improve">IMPROVE</span> Context manager (<code>async with</code>) now properly closes on exception</li> |
| 115 | + <li><span class="tag tag-fix">FIX</span> Handler exceptions no longer kill the entire event loop</li> |
| 116 | + </ul> |
| 117 | + </div> |
| 118 | + |
| 119 | + <!-- v1.0.0 --> |
| 120 | + <div class="version-block"> |
| 121 | + <div class="version-header"> |
| 122 | + <span class="version-badge" style="background:var(--text-secondary);color:var(--bg-primary);">v1.0.0</span> |
| 123 | + <span class="version-date">2025-01-10 — Initial Release</span> |
| 124 | + </div> |
| 125 | + <ul class="change-list"> |
| 126 | + <li><span class="tag tag-new">NEW</span> <code>GmGnClient</code> with async context manager support</li> |
| 127 | + <li><span class="tag tag-new">NEW</span> <code>subscribe_new_pools()</code> WebSocket channel</li> |
| 128 | + <li><span class="tag tag-new">NEW</span> <code>on_new_pool</code> event decorator</li> |
| 129 | + <li><span class="tag tag-new">NEW</span> Pydantic v2 models for all data types</li> |
| 130 | + <li><span class="tag tag-new">NEW</span> Automatic reconnection with backoff</li> |
| 131 | + <li><span class="tag tag-new">NEW</span> Python 3.8+ support</li> |
| 132 | + </ul> |
| 133 | + </div> |
| 134 | + |
| 135 | + <!-- Upgrade guide --> |
| 136 | + <section style="margin:3rem 0;padding:2rem;background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-primary);"> |
| 137 | + <h2 style="margin-bottom:1rem;">Upgrading</h2> |
| 138 | + <p>Always upgrade in a virtual environment and pin your version in production:</p> |
| 139 | + <pre><code class="language-bash"># Upgrade to latest |
| 140 | +pip install --upgrade gmgnapi |
| 141 | + |
| 142 | +# Pin a specific version |
| 143 | +pip install gmgnapi==1.3.0</code></pre> |
| 144 | + <p style="margin-top:1rem;">Breaking changes are marked <span class="tag tag-break">BREAK</span> and described in the <a href="https://github.com/ChipaDevTeam/GmGnAPI/releases" target="_blank">GitHub Releases</a> page with migration instructions. Join <a href="https://discord.gg/ub46R9Dk" target="_blank">Discord</a> to get upgrade announcements first.</p> |
| 145 | + </section> |
| 146 | + |
| 147 | + <!-- CTA --> |
| 148 | + <section style="margin:3rem 0;padding:2.5rem;background:linear-gradient(135deg,#1a1a2e,#16213e);border-radius:var(--radius-lg);border:1px solid var(--accent-color);text-align:center;"> |
| 149 | + <h2 style="color:#fff;margin-bottom:0.75rem;">Stay in the Loop</h2> |
| 150 | + <p style="color:#aaa;max-width:600px;margin:0 auto 1.5rem;">Join our Discord to get release announcements, beta previews, and early access to new features before they ship to PyPI.</p> |
| 151 | + <div style="display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;"> |
| 152 | + <a href="https://discord.gg/ub46R9Dk" class="btn btn-accent" target="_blank"><i class="fab fa-discord"></i> Join Discord</a> |
| 153 | + <a href="https://github.com/ChipaDevTeam/GmGnAPI" class="btn btn-secondary" target="_blank"><i class="fab fa-github"></i> Watch on GitHub</a> |
| 154 | + <a href="https://chipaeditor.com/?utm_source=docs&utm_medium=cta_block&utm_campaign=gmgn_api&utm_content=changelog_bottom" class="btn btn-chipa" target="_blank"><i class="fas fa-code"></i> Try Chipa Editor</a> |
| 155 | + </div> |
| 156 | + </section> |
| 157 | + </div> |
| 158 | + </main> |
| 159 | + |
| 160 | + <footer class="footer"> |
| 161 | + <div class="container"> |
| 162 | + <div class="footer-content"> |
| 163 | + <div class="footer-section"> |
| 164 | + <h4>GmGnAPI</h4> |
| 165 | + <p>Professional Python client for GMGN.ai WebSocket API</p> |
| 166 | + <div class="social-links"> |
| 167 | + <a href="https://github.com/ChipaDevTeam/GmGnAPI" target="_blank"><i class="fab fa-github"></i></a> |
| 168 | + <a href="https://discord.gg/ub46R9Dk" target="_blank"><i class="fab fa-discord"></i></a> |
| 169 | + <a href="https://pypi.org/project/gmgnapi/" target="_blank"><i class="fab fa-python"></i></a> |
| 170 | + </div> |
| 171 | + </div> |
| 172 | + <div class="footer-section"> |
| 173 | + <h4>Documentation</h4> |
| 174 | + <ul> |
| 175 | + <li><a href="getting-started.html">Getting Started</a></li> |
| 176 | + <li><a href="tutorials.html">Tutorials</a></li> |
| 177 | + <li><a href="api-reference.html">API Reference</a></li> |
| 178 | + <li><a href="examples.html">Examples</a></li> |
| 179 | + <li><a href="advanced.html">Advanced</a></li> |
| 180 | + <li><a href="filters-guide.html">Filters Guide</a></li> |
| 181 | + <li><a href="trading-bots.html">Trading Bots</a></li> |
| 182 | + <li><a href="websocket-guide.html">WebSocket Guide</a></li> |
| 183 | + <li><a href="faq.html">FAQ</a></li> |
| 184 | + <li><a href="changelog.html">Changelog</a></li> |
| 185 | + </ul> |
| 186 | + </div> |
| 187 | + <div class="footer-section"> |
| 188 | + <h4>Community</h4> |
| 189 | + <ul> |
| 190 | + <li><a href="https://discord.gg/ub46R9Dk" target="_blank"><i class="fab fa-discord"></i> Discord Server</a></li> |
| 191 | + <li><a href="https://gmgn.ai/r/9dLKvFyE" target="_blank"><i class="fas fa-external-link-alt"></i> Create GMGN Account</a></li> |
| 192 | + <li><a href="https://chipaeditor.com/?utm_source=docs&utm_medium=footer&utm_campaign=gmgn_api&utm_content=changelog_footer" target="_blank"><i class="fas fa-code"></i> Chipa Editor</a></li> |
| 193 | + <li><a href="community.html"><i class="fas fa-users"></i> Community Page</a></li> |
| 194 | + </ul> |
| 195 | + </div> |
| 196 | + </div> |
| 197 | + <div class="footer-bottom"> |
| 198 | + <p>© 2025 GmGnAPI. Open source under MIT License.</p> |
| 199 | + <p style="margin-top:0.5rem;font-size:0.85rem;opacity:0.7;">✨ Proudly built with <a href="https://chipaeditor.com/?utm_source=docs&utm_medium=footer&utm_campaign=gmgn_api&utm_content=changelog_footer_credit" target="_blank" style="color:var(--accent-color);">Chipa Editor</a></p> |
| 200 | + </div> |
| 201 | + </div> |
| 202 | + </footer> |
| 203 | + |
| 204 | + <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.24.1/components/prism-core.min.js"></script> |
| 205 | + <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.24.1/plugins/autoloader/prism-autoloader.min.js"></script> |
| 206 | + <script src="assets/js/main.js"></script> |
| 207 | +</body> |
| 208 | +</html> |
0 commit comments