init
Browse files- .gradio/flagged/dataset1.csv +7 -0
- app.py +161 -0
- requirements.txt +3 -0
.gradio/flagged/dataset1.csv
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Initial Base Reserve (tokens),Initial Quote Reserve (SOL),Migration Quote Threshold (SOL),Trading Fee %,Creator Fee % of Trading Fees,Partner Fee % of Trading Fees,Meteora Fee % of Trading Fees,SOL Step Size Per Trade,Base Token Decimals,Quote Token Decimals,Bonding Curve,Fee Breakdown,timestamp
|
| 2 |
+
1000000,1000,5000,1,40,40,20,10,9,9,"{""type"": ""matplotlib"", ""plot"": ""data:image/webp;base64,UklGRg4sAABXRUJQVlA4IAIsAABw0gCdASqAAuABPm02l0kkIqohIlEpeUANiWlu/HyZipEnYls+WO8znPud6Qf1zoRujdVPUnmL8hfmP0xfrH7gPzZ7AH908mb9gPcp+3fqA/Yj9xfe+/uXqK/vH9X/aH4AP8J/mfRg9hb0AP4f/lf//65Hsuf2P/ffuZ7Yn//1pbyN/NPxm7/P6x/dP2O88/xv5X+rflJ+9nvEfwHjG6F/tPoV/H/rX9u/tf7Y/3L96fgz+1flL5o/DH90/Lb4Avyr+Of3/+6/ux/WPTB2Fevf5b0AvVn5f/fv8d+5H+M/eT13f1j8sv7X///kT63f6f3AP5H/KP8N/c/3K/vX///6nxWeEX9z/yH/Q/s3wAfyn+m/6H+5/5L/p/4n///a9/C/8f/If53/1f6j2s/nP9z/4H+U/0X7RfYR/KP6L/r/7r/mf/r/mf///+Pu3//HuL/bf///+f4Tf2c/+YtLB0a8eZ8GS8aVyY0rkxpXJjSuTGlcmNK5MaVyY0rkxpXJjSuTGlcmNK5MaPHof/CjzBz4PaHDM6SPnldJPWatdS0jraHzJOkEW1NhIljha5Nqu5fNgdZVg+faVOg9mYyrKcBVF75mOWZ8RMlVritWVAAwIu2/3uXHk3PsGfBkvGlcNBXL1WvbZltzX5wZDdjnUzzsXoSaDqzI1xYNaK2Kh51ERTHV1MDqcMIbo6VC6/SDNtDxPebwURIiMqXskdVl9XbJALExayeUJUz09PoEOQkxf3tsy22K9+ppYSm4Tfresgra7AAVfnGwiTG+D++WmncFUB9uD5VCXG6Q55QpsH0I4SWpYIMCNZTiXJjSuTGlcmCS6r6CaCWxgedbh8WTOB+iKoVBfS4GT50DOvJLRhXlc8uYNJoFw3c1BhiJgPdsfpyWZUnzaTsra7Hko/i8KopNOdB5hE3XRrx5nwZLfZQi6vhzxpXJoX0pYSXjSuTGlcmNK5MY9g+eqxSTga+RW6Tga66NePM+DJeNK4PU/aLJzxpVG38H5cSEiINsVZc5PJFu1oaSRmfBkvGlcmNK5MaVyPeZFt0Fm0wNdc/JeTddGvHmfBkvGlcmNKq+NzdC5hJeNLV1WDo148z4Ml40rkxpVa5BCbEDiYSXgZ0DDRIaK6kGfSgiEtm9+/ZW6Tga66NePM+DJeNKq3hIbzqxGlBtlGZImYPgNPctlrFJOBrro148z4Ml40q/poPTGmjO0YNJgMsUAajTh0xuYGuujXjzPgyXjSuTBeU9CnTh/Sbk8zplMTAIrY6Nin0KzPe+TSfRv0Hsu58mISXjSuTGlcmNK5MaOW0toeCWNGDbR1YX4YamzGksb9gpXJjSuTGlcmNK5MKTIMsWFPsikfpLKDuPopVi77MmmNK5MaVyY0rkxpVbgSlJXKt37BR7YGVeVEgJ7HoGxbasiXH4S213ofu2X8tApJwNddGvHmfBkvGjl1nPs0k018QhSZpGD+LMmmNK5MaVyY0rkxo+T+T+MJf+vHTBtedmkDIga66NePM+DJeNHhwNhvPkEiA5VZGZ7Sr2RSVqFXQE/t6msCYVWiJUImlhJeNK5MaVyYKeaMoChLUv0CY0tXVYOjYjmjGlcmNK5MaVyYKe7CUkwj86BaS8dMG1480gZEDXXRrx5nwZHeFJ//fjDfJovgyXoX0pX1eT+F4zC/6LODe7AUc/6tcUk4GuujXjy8pxEVMQr9+J9EF//uCOVg6NfxqCW6Nz5ga66NdbqxOm+FYd50t+P+axwh0zvjXLLYY8vyuTGoqJeO75rJUny3gLzPUXG8Ym1M+jEDYTw5z0Gyhx9fFl/bPhct1z9HznZ4dwx1r+9S71C8eZ8GS9C+lK+t8IRQ5ttErQGNuOQHXntaBYkEac5NkV8tjRzeurDw/WlaODMq0MMtuUvL8QSUqu52vfaO54oL3QeCJEEl+0TlNkqo94hgjmT3B+CW6LBF93qA1GQH+UBQWxB09rlMfkoYoOXAWd5UaALag46xWbKwZw3OUmgIUV+AafeUAJ9JPItMFg6tnHLYiDbQGG5HDga/HAeegBJWPrGQeDv7u8gJ7daG7M9izJYrWOxo/4wPtJYXt8aTZyv9Pk8z4MlxTB+x1L8a69tLQj9qmCvuGRFQRAi6oB6l0SVI7r5B7yCm+AAjQYZObyWE73q2FK6WXnyKb9s7Jtgi7o8PWGwrkGPiNbNePM+DJeNK5H4N+HjijgsEBeBwPMA0kocOxYPn7nrBZ8Qwj8L5AOa/JEFBQa66NeO6AA/v+loAAABQaql1Y+GvH6nBPC0cgF6NqTCK5+OcW60RbCwT0Cxg/9cW5HC4/R0927Bq4u287G5yRGTeXlFjQR2w8iT792908rmsi862osDv4mNNvhRMftJ3tKPom325hlN2SL8g1q9qttMHwZPDobDb1cyXgqyvCm4HmFYfctqwBCbg3NGXZ77x/NRMgazAghNjdzdWAib7mdn86B1Nv4lHslE++rMhOFe6vyG7oB+VEX9bDufmWW1lsEHQHOHizfTXr/UCaIV/ICq92deP4lVkHXs22EX07tu+rkUDVSzNHKthglTsecnBn7+wBKCOZnW1AEza4v/vV+lfvya0W8fBAigEz4czQVKRo3OcCeufobFVlpQHiA7BcM0pL0Zv//FrSOuXaeChMBpScN6yu/kHLhXCG8apxAhJLss4wP9G3z7fQq+1b90ikBgo05yQRG/HMOPZpd+iCLDyokZD64ws8XZXCbROazxfx/q6CE6GvCUoFIkZvI5oase0QZm3EAjfKt3/09baS6m5AZR35R6b2tXmeo+nDZt/WXrspehvTj/sNZ9UtaX1NQSO20Oj22M42m3P7e1njK5m4tEGWTy/MCTXUUNwzZ8kGxpjpgwVfSQOmX/QeHSQj6aZ9A3q94W3E1li6Y1bAZXa3y7dp0nbQQLkgY7mGBGhU4ESXMq9nrGoPRzspjlOY4MnTyCIRRAId9W364n6jsojpk5EDtb3TT3CXKDOTvZz0oHkTfC2n2HVkfuxVNFIgDd5j9KzN/wVaIB+gbzkKtjitzWLr59e263VlevX32fLflRwO0BtNejbnCBbnOe8TtOIi/4bnCXDysRRqeIn86jC0SV+o72A9BzKoRxtBN4FOQnqMnsZYstBFz6Wvqz2Iy+haEo8PpszSsE/qy/FGIP4D+u1QT9s4e0zpvHAP6ts6C/Wk7Ln4dKDTS+HHl9Y9QM/bvbfYkxCtBWkR33QQY657rFwWi9B0EdSDqO887kHAk5BGov3we/fJcPs+5aYqWXbUEjOawtnbIDt9JP+Ooz8a7vCVvoD9cjPDQEeOAay0EeWAnBlNEJ90aSM1Vs97VYba2sfCknrqQPBr8ZyIYIFFr2oUD3pCoOSaEbCEfrE7xb4/ySZamqXyXHC86bRVE+wo8qL4yMsbtBKK6RVOzgcb54xkIzaBJrYLK/1vGkzzOnlQfxuX/fDcWXSpbcCbaXrzAlW/+05hy5QwR//ILQtGEjPqXrnAq0Mf+aRwtkKLbsRN/IrPtwEPCNUGJqL0cnSk9Lr7tVMmCNqIGkwuxRhVDeWaEErmhyby8osZYMvsao9m6uGNsmpEFqIw787UExxpt8KJj9pO9pR9E2+3MMxjBi0eEjrkYT+ZEFJFc0oBOrm5+vXpKsCre9yBLmqndSi85pO/fx3CXb7OM2PgU1rsP9sTDz/isE05BWHpyUCkWNoCR0QwA4Mhzp5X4N4yYP1JXXP7fDHYvWo6e9s+rdwfSP0R0ILGRLBbpqg78dUj7Un133QxANK6yzXC/+dxulhfP3JM60+iG9H+XmEGN4NJ5eAUGLuqrlOUSyKplV3S+AMdyrXhAluqS4oWpyFf5OMIU6DYKmr1GfWOWuFUPd/+27ysfBZp1Ju64Vnrc+x3tF3X8OfpmL/v9vYbgm1XyB4pdXBz4cxaERU8FCkykKuWEdGj/I8lnrti2eunKae+9XHLLbqvPgUqmhhDE+r5yxWCJVPJ21f2FAkKgE9c8pyLDRfX6j8kbDEmQY/rTD6S1NtL7ORgCQvHyy1nPK5P/UxDGjRRs42XdXrjVhcCbEe4Kd6tk9BG7jn8Hlm/qM/5TL8MHp+jNuagzafwun+lCJPS5PMW7uk94Ogr9PNlYJw5RgXN6UNosfRStb5WMpgaVYHzlvuVAkS7XNbF0pTLodWl1ycIRElqHG3of4g+uganya3KbVpU2F/87jn+52Wi5WLnnHR8BRk00QO+1Mm4movhEASUat4zBWHnYcaqlgVvOqG+BJprZc2yTwRFL77gCXUhjSrf4Df0IOtZR5cuhWml7T9gtkQ5Q7R6m3vaTW//4/uwRaB0Zxu0tM71YUWRmbnAoT+cTbpQCu7U3CvjN4zwUe4yPIMnGiIDonGhcUCkojE136wLnf5b2amSstjT+UJOlBHVyjpbIPaU+IeMKL9158pXDltEIDwlCe7EmxEAWV7Cg+LFZ2jyA9XLEiakfrokzNWqQEvLxLVGsPYEZ20bcGCVIBQ0MC6WxwbyTmtaKXPGGWx8CiI6/+hBLqLG5Y0UnGqWJIvElhSbFkCSeJ6e/d5bZV0shNEVo/XqLINbw0VHX399YGch0eVOrjSaLWm0I7NEERg0FDSdwt2GjcvFuTokFQeIYFGy8jEWc7gPutnkfhP1cVELTZHH1cJ9wM7V+h61dompoz0bPOL/QQwFG7EWL98IdhwyPLqM0YGYGcbYlZqmfDaiPiie+hXbVtdc9QQg6wNJ6izmNBIwZAuHvlUfhQ4bztmIOtYb635VHJIHCA/HkcU7s6GsvhlNApWui8qq9VTO8osbLIScYuzBTEc5Ry9IASgBl8nJda6PEh8SrmMS9ss6mFGOJqXLYXZq8GU9E7TdQlmEjUgmHKQPgIjh4IKZ0O2xv0d40OrYuBcI/bOs91zo7LcrVXv+VOMmjxQygJkwf9H9FfZwNTBzBBbbvZYHiaL7QSQkz2ZEBZWTbx7fuWL9ExF93aZBTGMUbsRV/mx12hj3Lp2XdnvkHacLkPw4wELGwN67kuMxey3gcA/4Yv+SwhE+YxOkTWAdMriTyzb79C6y/2ATeH6fwvb45jfxl2T2BBzmRkxxgLG4fiYypXyPOsPgh+3YTbhsQHVPwq/x4NNTXcB1RCK8Cf9+I1/c13Dez+O5L+W1amzwfBes7X91kvpOVrB9tNUe2zlZvQYrUWTOIvo/9y+ysUPHuX4i4eBgLPlSyR66aLaVSgalO4inratYa5so0+2YGDe/eim4+OHOcIjNKIA3OR0DXyqcAasb1/Zo4LvWfg4Yp0uBi2+4IWspJE8i89HBkj9/41qynLxsy0Zm+I7zLgohmJiXYsLmu0f7Tw8MbbG4LCMVaCga8wqlAXFr4Izv2BZ75rM/g2AaBGjA8lNtym/FuryD7XbIAI8/QoVTWj1Fur6xPmpsR5pyeIlb9i38f6iFMuMaPZEfhOenTFz81Yjp7hOZWLTZSeSAAXSbe+LuhXphWEASGyjlE+DEdz1AnnPUO3C2zSs9fXCa2RvaK+if50SFZyKtdYd5adcRK6+FrJC0Sy01LDkBEAxz/2pyGDKM6p3HTIDIVTpaCxJXQhMbLAt045/vAnBm56RxFUbbciwyVUB9Ne2yIenVIk5EI5D0ocg4zm1SzDEOGFlpsMgKhuk1Vy76HLkZZPPXhBNg0fg4DLlB0iP5YY4EgFwT8hXtizU+Z4tVxH34jsNUkLdIZ3phuchjl/EfTyNGn5ctbp/AHE5YDFnXm8qmq/G0phngtUUUtzhRxLdT2gonL0FBn1iYfc7Ajc6JPUBlP3kKhWfWRqdHwAfFsRnE9/uLpHlx6DkzxHFVJ8f9bIDBD3n89gcV40p81C6OUX8VR7EwQzuFhcMaiWhCb9EsTyIoh8jtYnwQsxD1m/V4JXWt0igMpsNEYJmvTodOhBDrSqLoARUG49c1dJ1x9g/umEkNmY67VIwKmK6IQSOFHGqvpHbsaEpIK8eLtC2ojP+gxAfNCK0Iu940LTM9Csi5cd6TmHxEDvzD90293dPlpKhp9Cr+3yI/kgMXFnrHs/m1WD2U8VXzXkdlk/WZ6HYMQG+8/szITiyta0/ymFGpChIQgBXa+BAd/HeB6XPKEx1wPByqWTwijwDFmsbLT4rB5B1NsN02IIqUt1J1yWO4lyjaZiZKO61aYOSfcTTkShrw98LMu6kTJixHjRKq9PMVll+1LBz9P/YULgHfYnEqZjIvwxpMHBv9ftEmy1Msu8uxtLQNw2OhVIjzqRRlOU9Ak6jW0huh3Qj6eTLlQMEfV1yH/xfF+yC2QHqQ8LF8UPeV3rw7YjF28YVMyG6V+VsA0QiEZT57JpsdY1GBPBv3E3PhafcMIFUA+FHfrqVx4h/J/hUwj0+/zdZCb8OGoBuQsdErFI+P+tkBgh7z+ewOK8aU+ahdHKL+Ko9iYIZ3CwuGNRLQhN+iWJ5EUQ+R2sT4IWYh6zfq8ErrW6RQGU2GiMEzXp0OnQgh1pVF0AIqDc0bYX9nacf+fhFCCiiLZ79AbzOem3fv+3lAAM/YBPKdwqni8ANqUh4RCsRyWE75QM4MFm8QTRNY/RP2FekdEFONdQVCHGFg2m17sOQBUq4ui5+83/wlbZb8Ce20SaD/ANi6HCmvhHbktOR4kjcOwXDivrpWPzGzRKkpb97JKCJJkTMZno9jsKnAj31pJgodYADChyJIRkVMZ4IaLQ4kjBpymLGDjF+7ncLLbPP+Pe1GOAJ9igF6xFj4tTAn7aN7fXxrg8oyqeiNBkK6lOJqAXo/+95EKcMy3FcYWyjcdUAbQ3l7r8SiWf5GQVDpKBem2kNcCNaqJwibOhd07DEdVJUfSOwg7z9LEYdFxKummmcOBlmG2wjgSp5tX7235HeGvgelC53dJ8lneeOY0s79QAbUfCy4WT+4TkXB8i8836fb9EZ4egBSswdcDWPZQNSaiXw2//GriYJDkVEVwrJYGOVb/fa2WfCNIK5DN0JpAq6CVdV4Oqnz1Xcpx+skYA2Hb8RXQmoGC4D09msDF2PFkZmn/muhpRe++0ScLQnJztjAsmd4t+srzN460EHsR2W/ifWvbifPUfwoY+cv6xDiGkjqgcxK9ozu/GecfNC7/rqPHS4RgTq3fbdbf5B8vPE6O0NkZqWwDS/OHHzh8FBcpmbegFBW/XlL3a64GylGYlOPy1KvA4XNt8NPIA8iWGEtFa5qoFRl6L0ClqFkOeMUlNqlkrhjzZA+0FxuXE95aORh6Xq3CLp3pI+uWNE2Xqf1KAFJrbrEYTMm+YmW8KZLoWetbMu7BkCF5KiOUkNhL6oDH31WK6RGO6Df1l+r6hpL6+TY6OMTdyILcfwDPw1X9R/sMRTnNROjVyD+G1eH2Yo+gL9uPiu8I96csMrh58r3vzEOzM0EZiQFctX6kFTk+K2lEBSYextReggPATiEfrTifVNBViXz3pVz8uDHZw1g4FSCgsg3kUJuOz+lBQlgpU41LVqK8+Ot/ax4kM70T77orPaj8Y06rr67AaCx+ZKpRUat22vtc5j1r+G1fgmOUSmmr7L2HAhhhEbNcLQSALvjPuq3/JSGYni27hNdKjeAEEa+FR2Ywmq7x6R0aTsUJnccjqW+qs2WthS+VyARYVuhW0eELwIHOQKufgi/eetgLtQsAaXZWQtjaE8YSCaUEIUPOXhiORoWBs7v8KpGa3tGTcekPk6ovcFvn1cVENSLjKBqoIS6/8T2GeQcHAZhs4hQdOzMhtg9K9A8nD0sYN8V/Wu3DwFfF31QkS2VEPRP0qKFDip78InAGcC/xfXVeAJ5L1mwJ5OyGYFC1BPW0VYh+1c/VDLgBxzwNNIv6P8rJHF1RafFtT5TnukQXWsjgGsL+PkTjU9O7GV/PIEbWWEDAUpDUzIlvAoUhwDjE09o6A172EwZWFCKJrgaRHh8+fkEFd6TG7JiyvcNR/uN61XkucD8F4Gfak5e2A/9QaeWDQ5Y22RBmfxlh7hlHbKYuwM0e4ANvt8Z4ntJCDxejkEeejA/B110/dBvzBWdAUQs1kEwo2llWMxfTeRN8kCjZdCb1bp6WtudS6FwUec+26yHlbQEU83FuBJuPTKZqKAmzQZvUXsyeMQr4th/mALWTtvFOCwDCGLHU193T+RXFBJEVCtgCXvpjmr01XU0BB4PikZQ0/eO37Wjoo+7AonsBLdInMl/G2wippuNgMVE13lhkRLH+pXRRjiWXhxgvN6DxTIvmH7ZSyyTCeHwfgARfEuosKPiVjq8s/qUAKTW3WIwmZN8xMt4UyXQs9a2Zd2DIELyVEcpIbCX1QGPvqsV0iMd0Cfm+PZuEfxzjomH9jnQiH+oYZYYjG7wtN6o/dOhut/IeDs52/AM2vJtwKvIHlHL3UX/yMR1u6i+qa2UJVXqIw42S6FIALjVgSK5VV5aDRgjTjjIBqNRHK6Bl4lv09d4hSfv2ZPbsmEdq2F994o+E1WOF4sj6R3NC+MSDPU70QpxXVpVvCMBdlQpI6jEVBmUIMgpmMGNHf1gFofEQJKe4PaS7WMCukOWirtyvwU/xBQgBav6YyzjY/HmibdI7SaQUUKxl3fsaZ8ZIMvH98664Fs+ILXDHn/RV++Rn0eoTQ2uUvA2pZYmfqjevaP+NZgUYsgCl8/GrDMicGy73xUniqEjDwwIOflAdqxFPu1Kov2tGLqOgOZk/ftewyPuC1OOyWXsiivRl/ivmnilqYieaDXrdPS1t1ACR5zWTM4kl23+UuGBXADEbayScShTo/BEMCDqKIiYSj80FZab6idBQgF4G9tai+TNdip2hYZhT2IRtMmqsBJcS29X0duX8cxccBd895inPFAJcycq+VdQU/RCZhP/oiCyEOXOkCUMlMEiNEnygWuOzAF/7FC+i8rb89m0jUnCJf1KAFJrbrEYTNMw9DuNoTT/3STU0/szGMf5U+ytiThL6oDH99Yg2tJnkMhj9bUzdZcNf8cnoDUY1ZjFtYqS5Bt6hT9vc3kd18lIeCvqE6fpSbcCryB5Ry91F/8jEdbuovqmtlCVV6iMONkfVf91tsnOZNOKL0EB5dNxYraD/wceHwy0FrXh2ajiuyc3HHPxEBfMPakgtwvvvE7sLXAhBcmXEofpB1h/Uy7qjmNQ37VHLZ28/ZsmaG1L7hCGbhdvWOt74QGv4x2zl+h6E1m6i7nKNEEiw6MbAPfJ+khZz2km3Sdq/Q55adS21Jn5/IXtT/vPnk82LkkW3KGtW7+yJQGr54DOp40yudv3xbTm/RP5yU0bcuXW22Q6D9bdA0tVob9wR/EhGad7Oemitwcu9X/EsHGUW8HCewMIhW+ZB5MfUYtS4ALpGi22mxG018ZC9HLOdKZnWqb+1VnCWV13Sxnw3Hr8VioWhx//07ZG9126UIMbf3+4RhL7Bpoyhe+NpRjA9TiqXQFykyzub3lNgyB5jngK0hXwP5VHuf2UsGaJBRiu4rquDxT07jpMNwcXR46zTJpprPMIKfM/z2sAA3tYdMSCISoAWkZnUT6JHupWUEjP9j5ccQLUeXOeBzfu5ecIO42Mw5NMeV5njpwvHalmovjpnMi0awvKE1sGcY0ruhy0NQAB2yVHYrIQmhwX3bCSxC9pL3ZEU1gXabagHjuqnxhpkTz1PRZFvzYleQieMGd4wu/PaR0BNjYk9AEtGmcHUwQ7pnzH4VmWNqaXCQqYcbkr1rLEaihGLynnvq9zjpt7glsUTAeAHr2+05+/in0YFW6xHNOnbY3dAn5vj2bhH8c46Jh/Y50Ih/qGrtHyFcMwds/4SitlWhyERe7gHA3AyHyyiplNYGlomKck6X6HpbO0GlIO3U33K5v4TA1BbFxS/n9UQcKJz5t1A7tOF/op2xFdXBPHWdHgpFYBgg++C9sRoQg4yANYDsLLuJJgd1SBv6mH1d7E2W4CEa4vm5ix1yjIz4LjZEiIZXLVdwpkyDO7Xp6Ug9MocFBsJuiiKOIaugqYv/D6yefJ5kGE2HXv5D9x+SxINnKOK/C+2aW9bfw6MZfSJoaBCQuFftAqBRKk14/pGYj4yfbToBONkkN0mLy4ZamLtEwtEVNviehSlKLlkimy4IWg+JH3StAaOk5oQt3bWK1CRr1vzTMcNSU2lBFhAljf8Bfb0KsHn2KJ+QL8TdsTbuT3FH9lgIJn3ppKv0e2ic0SN37lR/ZghXoI7b5gGf+pPG14M5gbPFAozvPYWyrBLljH4ZFySge9LlwZvXsiduN3Pnm3eu5y7Mp5x6sMAAJG+fDtBbfhQOtuAue6SP0xfmHkNJkrEkuop9a3fH1bTqwLBe1C4CTMvJGOrlGw/HZbVNmy4SJPgruObZhkqbE8jlLi3oVozDZ3Ssvd19ss1D3gCGPyt3Qsg1aVY9MRjZWMV0E2qTwKD4GTpxpWlS971CyNs7uGmTK9YvGDim5pNLlnHFuC5iYcrp2SYXjKAAElqsnC5Zbo1JuToCsBvNdm5iXXLpKCHNsoyKWy+9E6qbiFTXYEBxJ7i0+YWKP/7ydnMr0k4AbLlyZjVZJMMXbeCvO++GwxsBGPt1NbaLz6dFDAriLpd+jmA7S/bE4uu8sC2giBYxN4+EHZwPR0U3xyqythL2sxPQyvRhJqxBeCIRz79XKf4AtknORgH6Fck8UCf0byJCQfu6qS9UHdCQ/1QJdo5qhgQAHfIIvb41pmiat16klTNxb4pTMMi3zBsu3IgsKkfqiBZgeefuDaHnsn9hwVcrjSO3QmQ6dQglR7LqP1LwDCDKgeSJqisipAYgcgmw8RHH03/SC15x6BYHNEmq2xThaRpXgKscHGiNIX1e4DDHgdpd+IdwAAkbSNBLNi6rbutLX7wQBcytMrYYnMEGyJ1BhsoOPhBdnu7jHrTuMetFu+JBrN9/ZJipiWx3RtmzWE1kFQbe9bYZVaVZB/gbKYEx2FU/SfBjZybOaG4A9uULcSIWXTtmaCvE3Z06BPh9w9sIMWgh+b2o/kMoc4HKN6uoXQzWGQBsFEYyOxcHKU0c8KcZYph9/O7TnksVtvchdHLCpzU2awMDEtdm9+meAsOqpFusU6AyC2eyEPsnDtjDxjmp+Ign3x78FV0eaPJzdTjBHx3FMfnRSdfVcE8gA1CINfl+1Qrf6uk7ICFNIScu5+9us9nfrDEMkEzyTC22nVb2MKhO1oQFq8oO+EuwlwPK2xHwCsZbr7Wc3Dsx4uZL7QcNlQys0lHSxVhmLxrY/QTori5U3i8W2GxtwveRIXMGPUhjAFDjHUQtUHmBs/0TX+pK/6jOP78j8X+obazp6r+gAAAAUNkri4rIEWvlygKrMQ1VI+5/ePUav4qhj0st6aqj6V3kCu/wtIfrLcRaPmngywswE1jSP+FA+3kRb8MlBsb8XSaHbgQWo7h3bbnX4hfGmTyHbxXH6NEuZKO+wi/WqzgNo3YX3GouN4f0sbGWD4c+UUUwfUSU5za3eBsiTy3CrRuGwXKiGkBuMsElBnr+7IGZCcTCV0Z/s8EmSC+IAsOkt/BYroY7PZKvNi+dFNWi/VANz4ExwUi1Dg2oh2C1KLHlZTjAawaNt3KBKf8+vDZO25CzRTRVfGutm9Dqz7+e1IYEUBDYZ+1DLPcNiRE6AV/kPeNP7FteBeIviO62t8FJ+ACVmKAD0xNNTsLdKgDLLM/QRlkdwd6gHlijKnYIB5Ymmp2FyJB7JFUJGTTRVNI4qwoI8RXSD01AZNNGMeojwg4A3Y2WII5gqsc7qBFnjCRknrkhv+z1UKvh8nUSzuG0WEWeUd+dkF/9tuUfksjQWwev96WiW98Uq/HKzthsas5Kljr4bP7/V47S16lhtKMpSN6FVyqbduhj3H97Jx59TFakZWBkVYztZLtU9gF5NOqa+TREk2+Y2+SQD3yYi3U9UojALXkFlVqxSBuSW3kuVIyl42wZKZQDjZOTtJ5iG9HIvSouxh3PK9j5QXbKoIEu9XXbo3RMq4OSeaWELn/oqykUzMuCS3WIRJ0rDJ4d9Kn3ZlBDUYzN0bf6q3RWxGtZgkzL86RkmWx0MSn1RacWzeUBC29VMD9MZfV4yTnRsulDmVKpUxxdSdK9IeMwF92ZZ1vCmT9yrwhDJggwBJEmeU+s+77Me+Acnb18ec39epMb8EWBT2no9/rFCkOQUOa3pW4zrlgps9zQGvFk04XT46D6ZDf/QRlhipF+k3cOJqnAQRmaGGMXWuMbINXqZGvKTZPRMK/xnkeLs1zzitSzoHwWTnzrp6SX/ZKG7wno1xmocCTj3YPLua/BGcVYIBJ6R3eg/N4TXKG9AEhP3Afpj5wdpfEm9CWPq6j5wrXmooaQBAZSvxv5jpkwwyKK2CRiuqCfz17z7l4nUDd7H9zRbU23FeZCV0k84AcHNyPg7M4BXfdoPPNBEGvZpEi0PoypD40V1E1fcXZw65+ejoDNBkOL5RpJP/dTbx6hMag4odYDMwN6RFtpAPempGb4HvFd97qmv4RJw0Ky1W7McnZn7KDvyq9XM7huJkl9qmG80j/mc3eXBH0s0LbfUnCmhAaZ7weBPu9/xZUjET5W5t4SinBlyrJnxS6mY1sipo17Ay7gabi1EMZZrIDr14P5dG7yl1oO/xNRcVKCLH4xbrzIBv64RLypGLahdjSBwv3HVOtwRwa+icV5tWvEbhqyJZay+XOprsFOFX1rgeP87FHndMR1M2Fslb7zb9/wvoEY9BXpl9Ji92i19vw2FUqwd6jIL581RM2T8fEFGKNSmco9jZ0+J/0TtkNfiMK6ZvlzZNCTPwac7LeHxkDdzV5GOKwySpvdnA2TeLRDWi/6RmmLWPrcrwoUxcqw4/pixT2GthpxdrR70DGm16MKrdROXAF4/gL28GF++8ZjUPnfT8wLtR3FFtHQMM++f+l9N9ltciaXP/ShnJBn+cWeFjIikwhm8pvz1JueVJbZDpHDrf1/qHLI98XA+T8WsNH7Rw5fWFIxT8aaNk6raSx6c5t9O6eHx/QzQeYgxRPOpAuznADLwkK8XaXlOEjDzK7+kL6NyN6VIJ19UTZ7THPWDxB7ZdV1XNan58TQZq1kA1PDB9cY/A6nCMhVXJ0bWSieyi5ato2qVtpfo8O5DwVOuCqf9FMmlkXjg03aoAizqKh0o6372ORlBG8Oh5JYQN3wFKx78L3hZDD2jd04i1hi/nQAUsqNG9UerdpOV5W8W0frEJNqk4TW1a5tfHbJQlbtr0vBAGM0mdckYxSuLjgBr8ZO52f7qKqg6xAOtjZcCunUvRKPyz8TAnWM7jJOnLc6Avn5SBvN4uvvZF37WHm9fYqDjETKnwtpI1jzTaH4GmF5+Q+/rMd8NMB2dt9KQAOk5TCrfrJL2FxXH2x2PogbrodqEvJNHmd5T4TJuG4PuwRTi1lJsMsFAd1UKAgtPk/XvOO9NqRSe1HBuYsO60RsSRtlyIFGV9e+F2ifGbnkwIFyg1kvvsekcgmVHJJtn2PRr1bpSH+xLxga+lhVJTq6PnObhYm8JHFcN1sRva3Dp/jfpHsYBmbci6p7z938Q1l5V2bcRREnfVspxj+xjb+kZH2eJyIjKaqG+4A8qK/kcs+/GwTfqFVRX0NUtekBQ26UDm8fb6MHbz2/03MvhxLC+57oPPkhXNY8PO/XEyCHzZgi5R5A5Y42Nk4vMBZqdvrFH2ggLukImgAP1hJR3FdfXx2zfh32rCfx8mFtHNMY8ggSepL/KyyozVXKzoJX/TDgkWODIZioZk1J65yDSrSpErnlvTg1cK40tHagUd5/11qH6wdMqggIu8mW3p6pE64jGgKwI9gy5osQuHh0quov3LnFpB57v6hci2DMl71GI/3r32gsYPK+j+oWbQg5bZG9WknNzVWphIz+C7DU7xnME2kWhcreOJKFAmxoWfq2XU/KkUQYHBFKBylX5DR0Rp6aV/iXsIh/ZbdrhrAXd/e4YXGmEcw0S2VamqKrTwuZDqVxkPo3cvXpLdTbVkcPQtl4t8ehx1Nbw1vM/iFuxNHomovROKRSnjc8sJo2AXim3iJNVB/8AnytZyOhEuEJPqEBd18DMnPGKfkt36tfo+MxEevaSchJStsYxTKnn73gsxHG/P1a7IZHqFp0JgeLdiKoVACySYz1AfzhBwcsXDLslKKFKYgZunAqCDxcvl7nve/uYCIScx++69yOqGfnAyV5nw9jiDOO6Uvp+CvZm5Hlh4NegVXpHbK/LZe4zhlyc6vt2Pr9uZgyrorFizneHDzP/LnuoxS9ecAZKEGlcU3c10tVWrx6ImGXwNZRKgBn+ww3zUueAF4MapAXqo716cCYUvXlJDSksZ+//3pXvza5t90r1dKdN4Yt0la/RSb1gTSEfClfyargXep1PDuNHl3PtdcXY8k6BldLEgQyMUIL9qfr27pqIf249DrXPbyAGCAjFKmFWK7bwxnBhN01B0JacWFpY1Ry0NQRrWgYXdqWs7YAU2HQFgf7HCpdM75lyNv5ArK0wW2a5E79cwtofSDo+be/L53l4DcydsddvID94gzC5gn+FU4fQUnFI+wQgQSmPsZqCFGwoqwghkG5+Bgiotd2UlygpKOhzQdxluI89YOlBmdXG3Yd8z0U3o6dRbIg342kzKJ3oNFDTNWWX+b2cgyR38Chqk4+cbbiqNTEFP6959MHTcIwVcw8gSrJqiVwE8axs+S692oTGdSlwD7rthcdiLOKeRq9KVLVnVA6GCw+RZQY+N1HghI0H/pMPXInB+DhpSztaY7TSeepAeBqHQmU34MDFHvEX3f8wcca2RTlHxfx8062js45q1YfmWtYcMhCtIsDs62ollBNA2CfBJ2AORDn/P45WSfWfi9sxEmVcQ+MuhWk2+LbazLaGKr/MMGSeHdyH0FC7EBOvO2YUGFiaNj5ofeSpqeRxjmKZhCRbVQ3n6+NOVuGRJ994wWqj3IQ2AqAqCQ8eOPb6CIhrMrPo67KkhKK9trQxXwmmnorDcpibktOA5fNvFJjaMHQSDeCJCjrjw79BQFRZBc4skV4Dn1A5B3pLyQFHH7wkBjkf8zrKQAAAAA""}","🧾 Trading Fee Breakdown:
|
| 3 |
+
---------------------------
|
| 4 |
+
Total Trading Fees Collected: 50.0000 SOL
|
| 5 |
+
- Creator Fee: 20.0000 SOL
|
| 6 |
+
- Partner Fee: 20.0000 SOL
|
| 7 |
+
- Meteora Fee: 10.0000 SOL",2025-06-02 13:01:47.368004
|
app.py
ADDED
|
@@ -0,0 +1,161 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import gradio as gr
|
| 2 |
+
import numpy as np
|
| 3 |
+
import matplotlib.pyplot as plt
|
| 4 |
+
from decimal import Decimal
|
| 5 |
+
|
| 6 |
+
def simulate_full_bonding_curve_with_fees(
|
| 7 |
+
initial_market_cap_sol, migration_market_cap_sol, total_token_supply,
|
| 8 |
+
token_decimals, quote_decimals,
|
| 9 |
+
migration_fee_percent, creator_migration_fee_percent,
|
| 10 |
+
partner_lp_percentage, creator_lp_percentage,
|
| 11 |
+
partner_locked_lp_percentage, creator_locked_lp_percentage,
|
| 12 |
+
trading_fee_bps, total_trading_volume_sol
|
| 13 |
+
):
|
| 14 |
+
total_trading_volume_sol = float(total_trading_volume_sol)
|
| 15 |
+
percentage_supply = Decimal(100)
|
| 16 |
+
|
| 17 |
+
migration_quote_amount = Decimal(initial_market_cap_sol) * percentage_supply / Decimal(100)
|
| 18 |
+
migration_quote_threshold = migration_quote_amount * Decimal(100) / (Decimal(100) - Decimal(migration_fee_percent))
|
| 19 |
+
|
| 20 |
+
circulating_supply = Decimal(total_token_supply) * percentage_supply / Decimal(100)
|
| 21 |
+
start_price = Decimal(initial_market_cap_sol) / circulating_supply
|
| 22 |
+
end_price = Decimal(migration_market_cap_sol) / circulating_supply
|
| 23 |
+
|
| 24 |
+
# Calculate k for the price formula P(x) = k / (C - x)^2
|
| 25 |
+
# S(x) = integral P(x)dx from 0 to x = k/(C-x) - k/C
|
| 26 |
+
# initial_market_cap_sol is the SOL value for 0 tokens sold (conceptually)
|
| 27 |
+
# For the purpose of plotting the amount of SOL raised against tokens sold:
|
| 28 |
+
# Let C = float(circulating_supply)
|
| 29 |
+
# The price at a given number of tokens sold 's' is P(s) = k / (C - s)^2
|
| 30 |
+
# The SOL raised to sell 's' tokens is Integral(P(x)dx) from 0 to s which is k/(C-s) - k/C
|
| 31 |
+
# We use migration_quote_amount as the SOL raised when 0 tokens are sold for the *start* of the curve for simplicity in k calc.
|
| 32 |
+
# This interpretation aligns k with the initial SOL amount rather than price directly.
|
| 33 |
+
C_float = float(circulating_supply)
|
| 34 |
+
if C_float == 0: # Avoid division by zero if circulating supply is zero
|
| 35 |
+
x = np.array([0])
|
| 36 |
+
prices = np.array([0])
|
| 37 |
+
x_end_plot = 0
|
| 38 |
+
else:
|
| 39 |
+
# k is derived from the initial state: initial_market_cap_sol is the SOL value for 0 tokens sold (conceptually)
|
| 40 |
+
# P(x) = k / (C-x)^2. SOL_raised(x) = k/(C-x) - k/C.
|
| 41 |
+
# if initial_market_cap_sol is S(0), then k = initial_market_cap_sol * C_float. This is wrong, initial_market_cap_sol is not S(0).
|
| 42 |
+
# initial_market_cap_sol is effectively the amount of SOL in the pool at the start for pricing calculations.
|
| 43 |
+
# Let's use the definition that migration_quote_amount (SOL before fees) is the target SOL to be in the curve before it migrates.
|
| 44 |
+
# The curve starts with some implicit SOL amount that gives start_price.
|
| 45 |
+
# Price(x) = k / (C-x)^2. So, Price(0) = k / C^2 = start_price.
|
| 46 |
+
# k = start_price * C^2
|
| 47 |
+
k = float(start_price) * (C_float**2)
|
| 48 |
+
|
| 49 |
+
if k == 0 or (float(migration_quote_threshold) + k / C_float) == 0: # Handle division by zero or k=0
|
| 50 |
+
x_end_plot = C_float # Sell all tokens if k is 0 or threshold makes denominator 0
|
| 51 |
+
else:
|
| 52 |
+
# Calculate x_end_plot: number of tokens sold to reach migration_quote_threshold SOL
|
| 53 |
+
# SOL_raised(x_end_plot) = migration_quote_threshold
|
| 54 |
+
# migration_quote_threshold = k/(C_float - x_end_plot) - k/C_float
|
| 55 |
+
# k/(C_float - x_end_plot) = migration_quote_threshold + k/C_float
|
| 56 |
+
# C_float - x_end_plot = k / (migration_quote_threshold + k/C_float)
|
| 57 |
+
x_end_plot = C_float - (k / (float(migration_quote_threshold) + k / C_float))
|
| 58 |
+
# Ensure x_end_plot is not negative or greater than C_float
|
| 59 |
+
x_end_plot = max(0, min(x_end_plot, C_float * 0.9999)) # Plot up to 99.99% to avoid infinity
|
| 60 |
+
|
| 61 |
+
if x_end_plot <= 1e-9: # If effectively no tokens are sold to reach threshold (e.g. threshold is 0)
|
| 62 |
+
x_end_plot = C_float * 0.01 # Plot a small portion to show something
|
| 63 |
+
if x_end_plot <= 1e-9: # If C_float is also tiny
|
| 64 |
+
x_end_plot = 1 # Default to 1 token if supply is extremely small
|
| 65 |
+
|
| 66 |
+
num_points = 100
|
| 67 |
+
if x_end_plot == 0:
|
| 68 |
+
x = np.array([0]) # Handle case with single point
|
| 69 |
+
prices = np.array([float(start_price)])
|
| 70 |
+
else:
|
| 71 |
+
x = np.linspace(0.0, x_end_plot, num_points)
|
| 72 |
+
prices = k / (C_float - x + 1e-9)**2 # Add small epsilon to avoid division by zero if x reaches C_float
|
| 73 |
+
prices = [float(p) for p in prices]
|
| 74 |
+
|
| 75 |
+
total_fee = float(migration_quote_threshold) * float(migration_fee_percent) / 100
|
| 76 |
+
creator_migration_fee = total_fee * (creator_migration_fee_percent / 100)
|
| 77 |
+
partner_migration_fee = total_fee - creator_migration_fee
|
| 78 |
+
|
| 79 |
+
total_lp_tokens = float(migration_quote_threshold)
|
| 80 |
+
creator_lp_tokens = total_lp_tokens * (creator_lp_percentage / 100)
|
| 81 |
+
partner_lp_tokens = total_lp_tokens * (partner_lp_percentage / 100)
|
| 82 |
+
creator_locked_lp = creator_lp_tokens * (creator_locked_lp_percentage / 100)
|
| 83 |
+
partner_locked_lp = partner_lp_tokens * (partner_locked_lp_percentage / 100)
|
| 84 |
+
|
| 85 |
+
trading_fee_rate = trading_fee_bps / 10000
|
| 86 |
+
total_trading_fee = total_trading_volume_sol * trading_fee_rate
|
| 87 |
+
creator_trading_fee = total_trading_fee * (creator_lp_percentage / 100)
|
| 88 |
+
partner_trading_fee = total_trading_fee * (partner_lp_percentage / 100)
|
| 89 |
+
|
| 90 |
+
fig, ax = plt.subplots()
|
| 91 |
+
ax.plot(x, prices)
|
| 92 |
+
ax.set_xlabel("Tokens Sold")
|
| 93 |
+
ax.set_ylabel("Price (in SOL)")
|
| 94 |
+
ax.set_title("Bonding Curve Simulation (in SOL)")
|
| 95 |
+
|
| 96 |
+
note = """
|
| 97 |
+
Bonding Curve Unit: SOL
|
| 98 |
+
|
| 99 |
+
Parameter Explanations:
|
| 100 |
+
- Initial Market Cap: Total valuation (in SOL) at curve start.
|
| 101 |
+
- Migration Market Cap: Valuation (in SOL) when curve ends and migrates to AMM.
|
| 102 |
+
- Migration Quote Amount: Amount of SOL raised before fees.
|
| 103 |
+
- Migration Threshold: Total SOL needed to trigger migration (includes fees).
|
| 104 |
+
- LP Tokens: Represents user's share in the post-migration AMM liquidity pool. Approximated here as equal to the migration threshold in SOL.
|
| 105 |
+
- Trading Fee BPS: The fee rate applied to all swaps post-migration. BPS = Basis Points (e.g., 100 BPS = 1%).
|
| 106 |
+
- Creator/Partner Trading Fee: Earnings from swap volume based on LP share.
|
| 107 |
+
- All SOL values are approximated assuming quote token = SOL.
|
| 108 |
+
"""
|
| 109 |
+
|
| 110 |
+
return (
|
| 111 |
+
fig,
|
| 112 |
+
f"Initial Price: {start_price:.8f} SOL",
|
| 113 |
+
f"Migration Price: {end_price:.8f} SOL",
|
| 114 |
+
f"Migration Quote Amount: {migration_quote_amount:.2f} SOL",
|
| 115 |
+
f"Migration Threshold (after fee): {migration_quote_threshold:.2f} SOL",
|
| 116 |
+
f"Bonding Curve Unit: SOL",
|
| 117 |
+
f"Creator Migration Fee: {creator_migration_fee:.2f} SOL",
|
| 118 |
+
f"Partner Migration Fee: {partner_migration_fee:.2f} SOL",
|
| 119 |
+
f"Total LP Tokens: {total_lp_tokens:.2f}",
|
| 120 |
+
f"Creator LP: {creator_lp_tokens:.2f} (Locked: {creator_locked_lp:.2f})",
|
| 121 |
+
f"Partner LP: {partner_lp_tokens:.2f} (Locked: {partner_locked_lp:.2f})",
|
| 122 |
+
f"Creator Trading Fee: {creator_trading_fee:.2f} SOL",
|
| 123 |
+
f"Partner Trading Fee: {partner_trading_fee:.2f} SOL",
|
| 124 |
+
note.strip()
|
| 125 |
+
)
|
| 126 |
+
|
| 127 |
+
gr.Interface(
|
| 128 |
+
fn=simulate_full_bonding_curve_with_fees,
|
| 129 |
+
inputs=[
|
| 130 |
+
gr.Textbox(label="Initial Market Cap (SOL)", value="1000"),
|
| 131 |
+
gr.Textbox(label="Migration Market Cap (SOL)", value="10000"),
|
| 132 |
+
gr.Textbox(label="Total Token Supply", value="1000000"),
|
| 133 |
+
gr.Textbox(label="Token Decimals", value="6"),
|
| 134 |
+
gr.Textbox(label="Quote Token Decimals", value="9"),
|
| 135 |
+
gr.Slider(label="Migration Fee Percent (%)", minimum=0, maximum=50, step=0.5, value=10),
|
| 136 |
+
gr.Slider(label="Creator Fee Share of Migration Fee (%)", minimum=0, maximum=100, step=1, value=50),
|
| 137 |
+
gr.Slider(label="Partner LP %", minimum=0, maximum=100, step=1, value=50),
|
| 138 |
+
gr.Slider(label="Creator LP %", minimum=0, maximum=100, step=1, value=50),
|
| 139 |
+
gr.Slider(label="Partner Locked LP %", minimum=0, maximum=100, step=1, value=100),
|
| 140 |
+
gr.Slider(label="Creator Locked LP %", minimum=0, maximum=100, step=1, value=100),
|
| 141 |
+
gr.Slider(label="Post-Migration Trading Fee (bps)", minimum=0, maximum=1000, step=5, value=30),
|
| 142 |
+
gr.Textbox(label="Total Trading Volume (SOL)", value="1000"),
|
| 143 |
+
],
|
| 144 |
+
outputs=[
|
| 145 |
+
gr.Plot(label="Bonding Curve"),
|
| 146 |
+
gr.Textbox(label="Initial Price", lines=1, interactive=False),
|
| 147 |
+
gr.Textbox(label="Migration Price", lines=1, interactive=False),
|
| 148 |
+
gr.Textbox(label="Migration Quote Amount", lines=1, interactive=False),
|
| 149 |
+
gr.Textbox(label="Migration Threshold", lines=1, interactive=False),
|
| 150 |
+
gr.Textbox(label="Bonding Curve Unit", lines=1, interactive=False),
|
| 151 |
+
gr.Textbox(label="Creator Migration Fee", lines=1, interactive=False),
|
| 152 |
+
gr.Textbox(label="Partner Migration Fee", lines=1, interactive=False),
|
| 153 |
+
gr.Textbox(label="Total LP Tokens", lines=1, interactive=False),
|
| 154 |
+
gr.Textbox(label="Creator LP", lines=1, interactive=False),
|
| 155 |
+
gr.Textbox(label="Partner LP", lines=1, interactive=False),
|
| 156 |
+
gr.Textbox(label="Creator Trading Fee", lines=1, interactive=False),
|
| 157 |
+
gr.Textbox(label="Partner Trading Fee", lines=1, interactive=False),
|
| 158 |
+
gr.Textbox(label="Explanation", lines=12, interactive=False),
|
| 159 |
+
],
|
| 160 |
+
title="Dynamic Bonding Curve Simulator (with Full Fee + LP Breakdown)"
|
| 161 |
+
).launch()
|
requirements.txt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
gradio
|
| 2 |
+
numpy
|
| 3 |
+
matplotlib
|