{"task":"pub-scan: round 3 public strategy measurement; no strategy creation or tuning","files":[{"name":"giorgoschionas__amm-challenge.sol","url":"https://raw.githubusercontent.com/giorgoschionas/amm-challenge/61ba5df13771e35a9887e51994d3eeb5edc4fade/contracts/src/Strategy.sol","commit":"61ba5df13771e35a9887e51994d3eeb5edc4fade","sha256":"6fd32f2c52b2460046eb1b7fc133531f62e27404fd8efaa8633907691988a19d","repo":"giorgoschionas/amm-challenge","validate_ok":true,"validation_output":"Validating strategy...\nCompiling strategy...\nStrategy 'Optimal_25bps' validated successfully!","validation_error":null,"author_claim":null},{"name":"The-CTra1n__amm-challenge.sol","url":"https://raw.githubusercontent.com/The-CTra1n/amm-challenge/cd1bf7bc269dd22abbde65dd1e10f2df3b49eaf2/contracts/src/Strategy.sol","commit":"cd1bf7bc269dd22abbde65dd1e10f2df3b49eaf2","sha256":"08add619c99ffb6bbb44fc2d1801230508522cbce866ea4a50dd72d8100c8afe","repo":"The-CTra1n/amm-challenge","validate_ok":true,"validation_output":"Validating strategy...\nCompiling strategy...\nStrategy '👻' validated successfully!","validation_error":null,"author_claim":null},{"name":"VictorQian03__amm-challenge.sol","url":"https://raw.githubusercontent.com/VictorQian03/amm-challenge/d039851267b8f28d9c7123b3d75d81c96413efe4/contracts/src/Strategy.sol","commit":"d039851267b8f28d9c7123b3d75d81c96413efe4","sha256":"4c39e3c255663451e3ed63fe470067bd7c0d63695c5571ccf8ed084f4fb0a412","repo":"VictorQian03/amm-challenge","validate_ok":true,"validation_output":"Validating strategy...\nCompiling strategy...\nStrategy 'LatentStateIncumbentGapAwareV3' validated successfully!","validation_error":null,"author_claim":"Source notice: Preserve calmer resting fees, but charge more aggressively during real shocks."},{"name":"houseofjiao__amm-challenge.sol","url":"https://raw.githubusercontent.com/houseofjiao/amm-challenge/4f41eb914ca8df491dbb1068256bbf8561638149/contracts/src/Strategy.sol","commit":"4f41eb914ca8df491dbb1068256bbf8561638149","sha256":"07d5510da1972193d7cf20623de5693d54c123ce035ed158e2a7c1dee529bde0","repo":"houseofjiao/amm-challenge","validate_ok":true,"validation_output":"Validating strategy...\nCompiling strategy...\nStrategy 'category.xyz' validated successfully!","validation_error":null,"author_claim":null},{"name":"eliizabethzhang.sol","url":"https://raw.githubusercontent.com/eliizabethzhang/market-making-challenge/7156ff039f0ecd9ad62328664d997a762cf02cf0/contracts/src/Strategy.sol","commit":"7156ff039f0ecd9ad62328664d997a762cf02cf0","sha256":"acd9e80ddb0a7918574b6f29a4583b18c51754331291f7e0d4cdc17e00e49acb","repo":"eliizabethzhang/market-making-challenge","validate_ok":true,"validation_output":"Validating strategy...\nCompiling strategy...\nStrategy 'combo' validated successfully!","validation_error":null,"author_claim":null},{"name":"CH.sol","url":"https://raw.githubusercontent.com/ChengHua926/amm-challenge/d34a5199c59a4c44d5336a25f1436b4ae1f21104/contracts/src/Strategy.sol","commit":"d34a5199c59a4c44d5336a25f1436b4ae1f21104","sha256":"6dd68f77a70900319460215374143dbd5d924198450a46d9f5f91f6b1e3d35c3","repo":"ChengHua926/amm-challenge","validate_ok":true,"validation_output":"Validating strategy...\nCompiling strategy...\nStrategy 'no_cubic' validated successfully!","validation_error":null,"author_claim":null},{"name":"kmadorin__amm-challenge.sol","url":"https://raw.githubusercontent.com/kmadorin/amm-challenge/ec151d5a2da3810a65736d6dbe0519f81219286d/autoresearch/Strategy.sol","commit":"ec151d5a2da3810a65736d6dbe0519f81219286d","sha256":"f0999affeaeb0d3a9bfd432baa01ea879cc49e70ac9937b704f78d2137d578fd","repo":"kmadorin/amm-challenge","validate_ok":true,"validation_output":"Validating strategy...\nCompiling strategy...\nStrategy 'autoresearch_baseline_30bps' validated successfully!","validation_error":null,"author_claim":"Source declares flat 30 bps baseline matching the normalizer."},{"name":"lumen-dev-a11y__amm-challenge-lab.sol","url":"https://raw.githubusercontent.com/lumen-dev-a11y/amm-challenge-lab/4eae7bd93693b415d06adabb66d8db1e1975ab0b/amm-challenge/contracts/src/Strategy.sol","commit":"4eae7bd93693b415d06adabb66d8db1e1975ab0b","sha256":"9af0bc4976773e86c0b5e2970d3fe32c98a2a30075535bf5c7857555605c266a","repo":"lumen-dev-a11y/amm-challenge-lab","validate_ok":true,"validation_output":"Validating strategy...\nCompiling strategy...\nStrategy 'SimpleFixed55' validated successfully!","validation_error":null,"author_claim":"Source comment claims fixed 55 bps was best baseline so far (~379 edge / 200 simulations); not independently an official leaderboard claim."},{"name":"solosage1__amm-challenge.sol","url":"https://raw.githubusercontent.com/solosage1/amm-challenge/99dc1cfd0963c274df5f2145e8a282a78226fe9e/contracts/src/TmpFinal.sol","commit":"99dc1cfd0963c274df5f2145e8a282a78226fe9e","sha256":"aebe13d0615b723c4487b65ba32e494678d85ce07ef96bbdaaa8e04f24380f2a","repo":"solosage1/amm-challenge","validate_ok":true,"validation_output":"Validating strategy...\nCompiling strategy...\nStrategy 'tail_compression_mod_v3' validated successfully!","validation_error":null,"author_claim":"Source notice describes a dual-regime arb-oracle with gamma^2 competitor anchoring. An iteration comment gives best_delta_seen=1.99 without identifying a CH comparison; not an official score claim."},{"name":"alexanderzliu__amm-challenge.sol","url":"https://raw.githubusercontent.com/alexanderzliu/amm-challenge/e15b10d2193387e14b863342adacf9508821b471/my_strategy.sol","commit":"e15b10d2193387e14b863342adacf9508821b471","sha256":"72e777f283b5a9f4cb64670902d47a339907dbd810fb3fdaaf364fbb6c441fb1","repo":"alexanderzliu/amm-challenge","validate_ok":true,"validation_output":"Validating strategy...\nCompiling strategy...\nStrategy 'DirContrarian' validated successfully!","validation_error":null,"author_claim":"Source comments describe a directional contrarian policy: spike the opposite direction after a trade while decaying the same direction."},{"name":"atvinicius__amm-challenge.sol","url":"https://raw.githubusercontent.com/atvinicius/amm-challenge/78752c17e06b3f4b5d304291e29642f13693c2d7/strategy_submission.sol","commit":"78752c17e06b3f4b5d304291e29642f13693c2d7","sha256":"c6a8136443126776fb5a32ecc16be78539d40671481ae8b87a16bb84738bdfd6","repo":"atvinicius/amm-challenge","validate_ok":true,"validation_output":"Validating strategy...\nCompiling strategy...\nStrategy 'Rookie Edge' validated successfully!","validation_error":null,"author_claim":"Source notice describes a retail-first dynamic controller with toxicity and directional protection."},{"name":"0xniki__amm-challenge.sol","url":"https://raw.githubusercontent.com/0xniki/amm-challenge/56ca9d16f1099b42ee498e3af7651187b1971819/my_strategy.sol","commit":"56ca9d16f1099b42ee498e3af7651187b1971819","sha256":"74229c6535524db0bccc1116edd36e0952eb1ddb2acb4a25ec3da3f15e4806d9","repo":"0xniki/amm-challenge","validate_ok":true,"validation_output":"Validating strategy...\nCompiling strategy...\nStrategy 'L9' validated successfully!","validation_error":null,"author_claim":"Source notice describes estimated fair price, toxicity, sigma, flow and directional pressure with quadratic and cubic toxicity scaling."},{"name":"0xpranav62__amm-challenge.sol","url":"https://raw.githubusercontent.com/0xpranav62/amm-challenge/4e24ad7eba497b263e877ebece7d0288c0ad810c/contracts/src/EdgeMaxxing.sol","commit":"4e24ad7eba497b263e877ebece7d0288c0ad810c","sha256":"6baac9c7e5346d6c7829472f5dceb1105efb5f54a8781213e62a024ab8379182","repo":"0xpranav62/amm-challenge","validate_ok":true,"validation_output":"Validating strategy...\nCompiling strategy...\nStrategy 'RegimeAdaptiveEWMA' validated successfully!","validation_error":null,"author_claim":"Source notice describes trade-size, impact and gap EWMAs around a mid-fee regime."}],"runs":[{"file":"0xniki__amm-challenge.sol","seed_start":0,"n":200,"mean_edge":532.3077000771082,"se":6.344821010120321,"first10_edges":["476.706565","596.117691","412.952515","475.073917","520.957550","747.558875","462.820606","686.412281","677.956511","492.424928"],"worst":[{"seed":142,"edge":353.99963285184236},{"seed":113,"edge":356.23816811154603},{"seed":156,"edge":363.92165665735195},{"seed":195,"edge":365.2121751263691},{"seed":168,"edge":367.2845850544173}],"seconds_per_simulation":0.24290139925666154},{"file":"0xniki__amm-challenge.sol","seed_start":600000,"n":2000,"mean_edge":523.3034200967488,"se":2.0869474855805876,"first10_edges":["389.267404","388.938502","538.089854","523.946813","577.829732","442.439242","417.787525","473.540048","538.556226","621.236726"],"worst":[{"seed":601394,"edge":324.7070212829551},{"seed":600250,"edge":325.6045727317339},{"seed":601414,"edge":326.22230606042916},{"seed":600945,"edge":326.6348019990191},{"seed":601761,"edge":330.6909099213766}],"seconds_per_simulation":0.22546855480503292},{"file":"0xpranav62__amm-challenge.sol","seed_start":0,"n":200,"mean_edge":389.7896519783612,"se":4.661991080191088,"first10_edges":["360.636145","459.545804","309.068974","330.375390","392.017288","530.958274","352.716474","509.694772","488.112296","366.715798"],"worst":[{"seed":156,"edge":260.94655486899137},{"seed":136,"edge":262.64858338226946},{"seed":142,"edge":262.71423280831715},{"seed":113,"edge":272.1093178737015},{"seed":168,"edge":272.71980885049675}],"seconds_per_simulation":0.12522587401559576},{"file":"CH.sol","seed_start":0,"n":200,"mean_edge":533.3890702423242,"se":6.350474123509153,"first10_edges":["478.313720","598.726153","412.970257","475.602299","521.908357","746.452587","463.532813","687.730772","679.166753","491.613659"],"worst":[{"seed":142,"edge":355.4575611260506},{"seed":113,"edge":356.3642333887226},{"seed":156,"edge":365.2476756230629},{"seed":195,"edge":366.5691355431313},{"seed":168,"edge":367.82691365479207}],"seconds_per_simulation":0.13349405972636305},{"file":"CH.sol","seed_start":600000,"n":2000,"mean_edge":524.6203102615539,"se":2.0918152065264333,"first10_edges":["390.455054","389.695273","538.858384","526.187078","579.029964","442.857061","418.362403","475.139164","539.262768","623.523600"],"worst":[{"seed":601394,"edge":325.4366015113627},{"seed":600250,"edge":326.791948364133},{"seed":600945,"edge":327.4111574773928},{"seed":601414,"edge":328.0199836066075},{"seed":601761,"edge":331.3953243114937}],"seconds_per_simulation":0.1735482758958824},{"file":"The-CTra1n__amm-challenge.sol","seed_start":0,"n":200,"mean_edge":530.7125162410387,"se":6.321007621609591,"first10_edges":["474.707238","595.443124","411.608120","473.021637","518.650099","744.374267","461.032208","681.228259","673.781124","487.792352"],"worst":[{"seed":142,"edge":352.8982753359793},{"seed":113,"edge":355.3681344336111},{"seed":195,"edge":363.9212603309824},{"seed":156,"edge":364.15601358413466},{"seed":168,"edge":365.9928803153341}],"seconds_per_simulation":0.11771573027479462},{"file":"The-CTra1n__amm-challenge.sol","seed_start":600000,"n":2000,"mean_edge":521.7077328805711,"se":2.0811433237195,"first10_edges":["387.892843","387.950856","535.743454","522.170726","577.107920","441.353791","416.066124","473.605500","535.826175","620.061660"],"worst":[{"seed":600250,"edge":323.5098189191177},{"seed":601394,"edge":323.7865716583716},{"seed":601414,"edge":325.04473261835955},{"seed":600845,"edge":325.8715942872026},{"seed":600945,"edge":326.56037909144703}],"seconds_per_simulation":0.1315917643889552},{"file":"VictorQian03__amm-challenge.sol","seed_start":0,"n":200,"mean_edge":408.1027380694971,"se":4.997268846674588,"first10_edges":["373.497494","471.074820","314.138505","347.615699","404.964751","576.882472","361.953349","534.897993","512.489111","386.224371"],"worst":[{"seed":142,"edge":267.6852243176339},{"seed":156,"edge":271.89327406322406},{"seed":113,"edge":272.74028820217166},{"seed":168,"edge":278.91863167124336},{"seed":195,"edge":280.058611334341}],"seconds_per_simulation":0.09921703357831575},{"file":"alexanderzliu__amm-challenge.sol","seed_start":0,"n":200,"mean_edge":497.6341372474664,"se":5.926981262970586,"first10_edges":["446.615982","558.600939","383.736082","445.137592","486.981095","693.693127","433.138012","642.728177","635.635668","460.967828"],"worst":[{"seed":195,"edge":323.67412150270883},{"seed":142,"edge":331.28823637623174},{"seed":113,"edge":334.4566317798016},{"seed":156,"edge":341.02554680961435},{"seed":168,"edge":342.20765121137003}],"seconds_per_simulation":0.1321134821488522},{"file":"atvinicius__amm-challenge.sol","seed_start":0,"n":200,"mean_edge":527.5791194773768,"se":6.368737795266978,"first10_edges":["471.182704","596.036374","408.930772","466.822595","516.351670","738.941627","458.184929","680.013320","672.711734","485.060412"],"worst":[{"seed":142,"edge":348.29669050729905},{"seed":113,"edge":350.9619078403654},{"seed":156,"edge":359.3469762539376},{"seed":195,"edge":360.8015548655106},{"seed":168,"edge":361.84664286595995}],"seconds_per_simulation":0.2110027060250286},{"file":"eliizabethzhang.sol","seed_start":0,"n":200,"mean_edge":514.4468597135269,"se":5.989532083888921,"first10_edges":["469.631432","591.507332","405.456700","445.481502","515.198938","707.050740","459.005726","658.997346","651.846605","481.101773"],"worst":[{"seed":136,"edge":261.51359035617037},{"seed":142,"edge":349.82447079468017},{"seed":113,"edge":354.76738597811953},{"seed":195,"edge":358.28788689572235},{"seed":156,"edge":358.93883238825464}],"seconds_per_simulation":0.15511485574999825},{"file":"eliizabethzhang.sol","seed_start":600000,"n":2000,"mean_edge":506.89258705411225,"se":1.9115991244052217,"first10_edges":["385.043159","383.442055","534.420500","520.099256","564.264574","440.733966","405.696611","471.547749","534.950016","604.882992"],"worst":[{"seed":601414,"edge":320.6063296246118},{"seed":600250,"edge":321.40732067000386},{"seed":601394,"edge":323.0377375566878},{"seed":600945,"edge":326.2406150916769},{"seed":601761,"edge":327.54059480906983}],"seconds_per_simulation":0.1518444921071641},{"file":"giorgoschionas__amm-challenge.sol","seed_start":0,"n":200,"mean_edge":326.70504303742325,"se":3.4241508935854794,"first10_edges":["296.945379","383.439392","275.976573","276.735963","330.976258","407.519928","299.704564","401.271983","409.584944","298.446232"],"worst":[{"seed":156,"edge":235.55024093891723},{"seed":136,"edge":235.84220434981606},{"seed":25,"edge":238.06480972859703},{"seed":142,"edge":238.3854103645279},{"seed":195,"edge":243.05246375521767}],"seconds_per_simulation":0.06639044313691557},{"file":"houseofjiao__amm-challenge.sol","seed_start":0,"n":200,"mean_edge":533.4263712660852,"se":6.352166022548692,"first10_edges":["478.068255","598.787874","413.100995","475.688335","521.946825","746.812821","463.540982","687.723419","679.152464","491.479293"],"worst":[{"seed":142,"edge":355.46744175893446},{"seed":113,"edge":356.39916049628255},{"seed":156,"edge":365.282970155927},{"seed":195,"edge":366.572702999914},{"seed":168,"edge":367.8518496480921}],"seconds_per_simulation":0.13826979789184407},{"file":"houseofjiao__amm-challenge.sol","seed_start":600000,"n":2000,"mean_edge":524.614668547634,"se":2.0919720077672737,"first10_edges":["390.715641","389.782426","538.758373","526.160997","578.635042","442.830590","418.870827","475.157941","539.352331","623.867482"],"worst":[{"seed":601394,"edge":325.4678191334784},{"seed":600250,"edge":326.82871452841744},{"seed":600945,"edge":327.39897562453694},{"seed":601414,"edge":328.05455012645234},{"seed":601761,"edge":331.38664167109476}],"seconds_per_simulation":0.23282306113478263},{"file":"kmadorin__amm-challenge.sol","seed_start":0,"n":200,"mean_edge":348.03119874347465,"se":3.704550423911026,"first10_edges":["316.481711","409.765372","292.701871","294.579458","352.771053","438.175513","318.666297","430.530305","436.395792","318.997328"],"worst":[{"seed":156,"edge":248.6869669631139},{"seed":136,"edge":248.97041020825174},{"seed":142,"edge":251.7468312878501},{"seed":25,"edge":252.54887006167436},{"seed":195,"edge":257.74595825042115}],"seconds_per_simulation":0.0790137205622159},{"file":"lumen-dev-a11y__amm-challenge-lab.sol","seed_start":0,"n":200,"mean_edge":379.19797072907636,"se":4.35281072752992,"first10_edges":["347.792140","449.796273","308.424865","321.087435","382.177823","498.470259","345.153029","486.636511","475.670631","351.931915"],"worst":[{"seed":136,"edge":259.41142431762427},{"seed":156,"edge":260.06752212529256},{"seed":142,"edge":262.49786020181904},{"seed":25,"edge":270.0659702264847},{"seed":168,"edge":272.70721211011767}],"seconds_per_simulation":0.06798289529746399},{"file":"solosage1__amm-challenge.sol","seed_start":0,"n":200,"mean_edge":518.7848588624105,"se":6.2468316094694005,"first10_edges":["463.863596","583.601682","399.960884","460.239581","505.866663","727.146632","449.950578","666.789791","660.031138","481.098012"],"worst":[{"seed":142,"edge":343.20996017506184},{"seed":113,"edge":343.2445339832986},{"seed":156,"edge":353.59538393232765},{"seed":195,"edge":355.5248799477148},{"seed":168,"edge":355.6619120963853}],"seconds_per_simulation":0.15252200068556704}],"paired":[{"a":"0xniki__amm-challenge.sol","b":"CH.sol","seed_start":0,"n":200,"mean_diff":-1.0813701652160739,"se":0.08054192771032724,"worst":[{"seed":76,"diff":-6.200159193128002,"a_edge":793.5494442246502,"b_edge":799.7496034177782},{"seed":198,"diff":-3.99193754638884,"a_edge":584.6153681465121,"b_edge":588.6073056929009},{"seed":184,"diff":-3.6448599632204264,"a_edge":440.8482128839353,"b_edge":444.4930728471557},{"seed":78,"diff":-3.6366308385241837,"a_edge":729.8233162836815,"b_edge":733.4599471222057},{"seed":139,"diff":-3.5668830991237996,"a_edge":490.1167512519483,"b_edge":493.6836343510721}]},{"a":"0xniki__amm-challenge.sol","b":"CH.sol","seed_start":600000,"n":2000,"mean_diff":-1.3168901648051057,"se":0.03294078278401353,"worst":[{"seed":601419,"diff":-30.960115368290303,"a_edge":519.2045517513584,"b_edge":550.1646671196487},{"seed":600083,"diff":-12.332199982065276,"a_edge":388.63568816819134,"b_edge":400.9678881502566},{"seed":601191,"diff":-7.30351515831785,"a_edge":733.6720894796632,"b_edge":740.9756046379811},{"seed":600435,"diff":-6.786089783741545,"a_edge":541.1862029561875,"b_edge":547.972292739929},{"seed":600930,"diff":-6.646540979026042,"a_edge":506.64207159415633,"b_edge":513.2886125731824}]},{"a":"0xpranav62__amm-challenge.sol","b":"CH.sol","seed_start":0,"n":200,"mean_diff":-143.599418263963,"se":2.3661779092754114,"worst":[{"seed":66,"diff":-281.21511835980954,"a_edge":473.9155644549414,"b_edge":755.1306828147509},{"seed":76,"diff":-257.33065051980975,"a_edge":542.4189528979684,"b_edge":799.7496034177782},{"seed":78,"diff":-228.91788734775747,"a_edge":504.5420597744482,"b_edge":733.4599471222057},{"seed":31,"diff":-222.653889041818,"a_edge":323.907430980117,"b_edge":546.561320021935},{"seed":152,"diff":-222.296112874752,"a_edge":352.66968339715027,"b_edge":574.9657962719023}]},{"a":"The-CTra1n__amm-challenge.sol","b":"CH.sol","seed_start":0,"n":200,"mean_diff":-2.676554001285515,"se":0.09835458776853012,"worst":[{"seed":141,"diff":-7.4393965212539115,"a_edge":695.069858087687,"b_edge":702.5092546089409},{"seed":7,"diff":-6.502513447858405,"a_edge":681.2282585271018,"b_edge":687.7307719749602},{"seed":78,"diff":-6.368488804793515,"a_edge":727.0914583174122,"b_edge":733.4599471222057},{"seed":197,"diff":-5.790008916497868,"a_edge":579.425944836174,"b_edge":585.2159537526719},{"seed":69,"diff":-5.774081778543291,"a_edge":579.0524556522752,"b_edge":584.8265374308185}]},{"a":"The-CTra1n__amm-challenge.sol","b":"CH.sol","seed_start":600000,"n":2000,"mean_diff":-2.9125773809827513,"se":0.043246356617498656,"worst":[{"seed":600845,"diff":-61.80130558983518,"a_edge":325.8715942872026,"b_edge":387.67289987703776},{"seed":601374,"diff":-22.12269304496806,"a_edge":576.8706645685123,"b_edge":598.9933576134804},{"seed":601271,"diff":-11.21628573247449,"a_edge":757.6134007451591,"b_edge":768.8296864776336},{"seed":600310,"diff":-10.859990809770238,"a_edge":752.1434758624255,"b_edge":763.0034666721957},{"seed":601269,"diff":-10.059242269456604,"a_edge":384.8730404113893,"b_edge":394.9322826808459}]},{"a":"VictorQian03__amm-challenge.sol","b":"CH.sol","seed_start":0,"n":200,"mean_diff":-125.28633217282712,"se":1.641784080247385,"worst":[{"seed":66,"diff":-208.67476456821532,"a_edge":546.4559182465356,"b_edge":755.1306828147509},{"seed":76,"diff":-193.08286081858625,"a_edge":606.6667425991919,"b_edge":799.7496034177782},{"seed":78,"diff":-183.76786332382937,"a_edge":549.6920837983763,"b_edge":733.4599471222057},{"seed":199,"diff":-178.18122221045064,"a_edge":451.3697304382947,"b_edge":629.5509526487454},{"seed":118,"diff":-173.16288528538155,"a_edge":608.7777951639916,"b_edge":781.9406804493732}]},{"a":"alexanderzliu__amm-challenge.sol","b":"CH.sol","seed_start":0,"n":200,"mean_diff":-35.75493299485779,"se":0.5036010468443427,"worst":[{"seed":76,"diff":-65.0593469391556,"a_edge":734.6902564786226,"b_edge":799.7496034177782},{"seed":157,"diff":-52.964300643174624,"a_edge":586.9497266075751,"b_edge":639.9140272507498},{"seed":5,"diff":-52.75946063489448,"a_edge":693.6931266912432,"b_edge":746.4525873261376},{"seed":170,"diff":-51.27166661982926,"a_edge":609.001213632225,"b_edge":660.2728802520543},{"seed":118,"diff":-51.17565930675471,"a_edge":730.7650211426185,"b_edge":781.9406804493732}]},{"a":"atvinicius__amm-challenge.sol","b":"CH.sol","seed_start":0,"n":200,"mean_diff":-5.809950764947397,"se":0.12169552535516545,"worst":[{"seed":176,"diff":-11.506498447595163,"a_edge":564.4050100877828,"b_edge":575.911508535378},{"seed":80,"diff":-9.98867672380942,"a_edge":490.8944304328278,"b_edge":500.8831071566372},{"seed":31,"diff":-9.931653357185724,"a_edge":536.6296666647493,"b_edge":546.561320021935},{"seed":137,"diff":-9.42797474321253,"a_edge":487.4360879117226,"b_edge":496.86406265493514},{"seed":46,"diff":-9.30494135233215,"a_edge":440.97343170790964,"b_edge":450.2783730602418}]},{"a":"eliizabethzhang.sol","b":"CH.sol","seed_start":0,"n":200,"mean_diff":-18.942210528797254,"se":1.2724113406494253,"worst":[{"seed":136,"diff":-121.15121012244401,"a_edge":261.51359035617037,"b_edge":382.6648004786144},{"seed":66,"diff":-92.6730135554593,"a_edge":662.4576692592916,"b_edge":755.1306828147509},{"seed":152,"diff":-82.12765026397528,"a_edge":492.838146007927,"b_edge":574.9657962719023},{"seed":31,"diff":-76.3290484149619,"a_edge":470.2322716069731,"b_edge":546.561320021935},{"seed":76,"diff":-76.28532034439615,"a_edge":723.464283073382,"b_edge":799.7496034177782}]},{"a":"eliizabethzhang.sol","b":"CH.sol","seed_start":600000,"n":2000,"mean_diff":-17.727723207441684,"se":0.36543576738284633,"worst":[{"seed":600733,"diff":-156.14279781441826,"a_edge":479.9530262134381,"b_edge":636.0958240278563},{"seed":601703,"diff":-134.99590700356646,"a_edge":768.1352865668505,"b_edge":903.1311935704169},{"seed":601991,"diff":-129.6342783065354,"a_edge":739.459848123149,"b_edge":869.0941264296844},{"seed":600159,"diff":-128.52721433304248,"a_edge":555.013603678163,"b_edge":683.5408180112055},{"seed":600807,"diff":-126.62423766826373,"a_edge":551.2749468067458,"b_edge":677.8991844750095}]},{"a":"giorgoschionas__amm-challenge.sol","b":"CH.sol","seed_start":0,"n":200,"mean_diff":-206.68402720490096,"se":3.510341962886964,"worst":[{"seed":66,"diff":-385.1585173666109,"a_edge":369.97216544814,"b_edge":755.1306828147509},{"seed":76,"diff":-376.35268277054746,"a_edge":423.39692064723073,"b_edge":799.7496034177782},{"seed":118,"diff":-354.26628947933625,"a_edge":427.67439097003694,"b_edge":781.9406804493732},{"seed":5,"diff":-338.9326592601787,"a_edge":407.51992806595894,"b_edge":746.4525873261376},{"seed":78,"diff":-329.6461714825023,"a_edge":403.81377563970335,"b_edge":733.4599471222057}]},{"a":"houseofjiao__amm-challenge.sol","b":"CH.sol","seed_start":0,"n":200,"mean_diff":0.037301023761051794,"se":0.01746351603423292,"worst":[{"seed":59,"diff":-1.7371758390739842,"a_edge":656.0078287410902,"b_edge":657.7450045801642},{"seed":167,"diff":-0.922640508979157,"a_edge":482.9595796628642,"b_edge":483.88222017184336},{"seed":95,"diff":-0.7121444592752368,"a_edge":611.5936240897635,"b_edge":612.3057685490387},{"seed":96,"diff":-0.5573290465791843,"a_edge":524.0198304564987,"b_edge":524.5771595030778},{"seed":40,"diff":-0.3945933773887873,"a_edge":584.599409936322,"b_edge":584.9940033137108}]},{"a":"houseofjiao__amm-challenge.sol","b":"CH.sol","seed_start":600000,"n":2000,"mean_diff":-0.005641713919910302,"se":0.02384298621911279,"worst":[{"seed":601419,"diff":-44.651117149121774,"a_edge":505.5135499705269,"b_edge":550.1646671196487},{"seed":601200,"diff":-4.600058915083196,"a_edge":521.5953465215923,"b_edge":526.1954054366755},{"seed":601292,"diff":-4.469257332230313,"a_edge":555.752042528405,"b_edge":560.2212998606353},{"seed":601431,"diff":-2.7787378939343057,"a_edge":458.3535316247358,"b_edge":461.1322695186701},{"seed":601893,"diff":-2.7209244803279944,"a_edge":628.1997693285472,"b_edge":630.9206938088752}]},{"a":"kmadorin__amm-challenge.sol","b":"CH.sol","seed_start":0,"n":200,"mean_diff":-185.35787149884956,"se":3.2838143392452572,"worst":[{"seed":66,"diff":-358.1008372056414,"a_edge":397.0298456091095,"b_edge":755.1306828147509},{"seed":76,"diff":-345.30256757067457,"a_edge":454.4470358471036,"b_edge":799.7496034177782},{"seed":118,"diff":-321.4626389406732,"a_edge":460.4780415087,"b_edge":781.9406804493732},{"seed":5,"diff":-308.2770743149593,"a_edge":438.17551301117834,"b_edge":746.4525873261376},{"seed":78,"diff":-301.0956340936563,"a_edge":432.36431302854936,"b_edge":733.4599471222057}]},{"a":"lumen-dev-a11y__amm-challenge-lab.sol","b":"CH.sol","seed_start":0,"n":200,"mean_diff":-154.19109951324782,"se":2.6881909378883044,"worst":[{"seed":66,"diff":-306.41803253319125,"a_edge":448.71265028155966,"b_edge":755.1306828147509},{"seed":76,"diff":-285.06865657660705,"a_edge":514.6809468411711,"b_edge":799.7496034177782},{"seed":118,"diff":-253.77480987967363,"a_edge":528.1658705696996,"b_edge":781.9406804493732},{"seed":78,"diff":-251.24403210264086,"a_edge":482.2159150195648,"b_edge":733.4599471222057},{"seed":5,"diff":-247.98232861232418,"a_edge":498.47025871381345,"b_edge":746.4525873261376}]},{"a":"solosage1__amm-challenge.sol","b":"CH.sol","seed_start":0,"n":200,"mean_diff":-14.604211379913682,"se":0.20435024060921053,"worst":[{"seed":76,"diff":-25.490127348278065,"a_edge":774.2594760695001,"b_edge":799.7496034177782},{"seed":19,"diff":-22.85726801590465,"a_edge":644.4680649794797,"b_edge":667.3253329953843},{"seed":147,"diff":-22.39823161565198,"a_edge":607.1318539386425,"b_edge":629.5300855542945},{"seed":107,"diff":-22.294957645861132,"a_edge":511.15085526628934,"b_edge":533.4458129121505},{"seed":100,"diff":-21.181778070550763,"a_edge":591.9609393144885,"b_edge":613.1427173850393}]}],"table":[{"repo":"houseofjiao/amm-challenge","commit":"4f41eb914ca8df491dbb1068256bbf8561638149","sha256":"07d5510da1972193d7cf20623de5693d54c123ce035ed158e2a7c1dee529bde0","author_claim":null,"n":2000,"mean_diff":-0.005641713919910302,"se":0.02384298621911279,"seed_start":600000,"mean_edge_screen":533.4263712660852,"url":"https://raw.githubusercontent.com/houseofjiao/amm-challenge/4f41eb914ca8df491dbb1068256bbf8561638149/contracts/src/Strategy.sol"},{"repo":"0xniki/amm-challenge","commit":"56ca9d16f1099b42ee498e3af7651187b1971819","sha256":"74229c6535524db0bccc1116edd36e0952eb1ddb2acb4a25ec3da3f15e4806d9","author_claim":"Source notice describes estimated fair price, toxicity, sigma, flow and directional pressure with quadratic and cubic toxicity scaling.","n":2000,"mean_diff":-1.3168901648051057,"se":0.03294078278401353,"seed_start":600000,"mean_edge_screen":532.3077000771082,"url":"https://raw.githubusercontent.com/0xniki/amm-challenge/56ca9d16f1099b42ee498e3af7651187b1971819/my_strategy.sol"},{"repo":"The-CTra1n/amm-challenge","commit":"cd1bf7bc269dd22abbde65dd1e10f2df3b49eaf2","sha256":"08add619c99ffb6bbb44fc2d1801230508522cbce866ea4a50dd72d8100c8afe","author_claim":null,"n":2000,"mean_diff":-2.9125773809827513,"se":0.043246356617498656,"seed_start":600000,"mean_edge_screen":530.7125162410387,"url":"https://raw.githubusercontent.com/The-CTra1n/amm-challenge/cd1bf7bc269dd22abbde65dd1e10f2df3b49eaf2/contracts/src/Strategy.sol"},{"repo":"atvinicius/amm-challenge","commit":"78752c17e06b3f4b5d304291e29642f13693c2d7","sha256":"c6a8136443126776fb5a32ecc16be78539d40671481ae8b87a16bb84738bdfd6","author_claim":"Source notice describes a retail-first dynamic controller with toxicity and directional protection.","n":200,"mean_diff":-5.809950764947397,"se":0.12169552535516545,"seed_start":0,"mean_edge_screen":527.5791194773768,"url":"https://raw.githubusercontent.com/atvinicius/amm-challenge/78752c17e06b3f4b5d304291e29642f13693c2d7/strategy_submission.sol"},{"repo":"solosage1/amm-challenge","commit":"99dc1cfd0963c274df5f2145e8a282a78226fe9e","sha256":"aebe13d0615b723c4487b65ba32e494678d85ce07ef96bbdaaa8e04f24380f2a","author_claim":"Source notice describes a dual-regime arb-oracle with gamma^2 competitor anchoring. An iteration comment gives best_delta_seen=1.99 without identifying a CH comparison; not an official score claim.","n":200,"mean_diff":-14.604211379913682,"se":0.20435024060921053,"seed_start":0,"mean_edge_screen":518.7848588624105,"url":"https://raw.githubusercontent.com/solosage1/amm-challenge/99dc1cfd0963c274df5f2145e8a282a78226fe9e/contracts/src/TmpFinal.sol"},{"repo":"eliizabethzhang/market-making-challenge","commit":"7156ff039f0ecd9ad62328664d997a762cf02cf0","sha256":"acd9e80ddb0a7918574b6f29a4583b18c51754331291f7e0d4cdc17e00e49acb","author_claim":null,"n":2000,"mean_diff":-17.727723207441684,"se":0.36543576738284633,"seed_start":600000,"mean_edge_screen":514.4468597135269,"url":"https://raw.githubusercontent.com/eliizabethzhang/market-making-challenge/7156ff039f0ecd9ad62328664d997a762cf02cf0/contracts/src/Strategy.sol"},{"repo":"alexanderzliu/amm-challenge","commit":"e15b10d2193387e14b863342adacf9508821b471","sha256":"72e777f283b5a9f4cb64670902d47a339907dbd810fb3fdaaf364fbb6c441fb1","author_claim":"Source comments describe a directional contrarian policy: spike the opposite direction after a trade while decaying the same direction.","n":200,"mean_diff":-35.75493299485779,"se":0.5036010468443427,"seed_start":0,"mean_edge_screen":497.6341372474664,"url":"https://raw.githubusercontent.com/alexanderzliu/amm-challenge/e15b10d2193387e14b863342adacf9508821b471/my_strategy.sol"},{"repo":"VictorQian03/amm-challenge","commit":"d039851267b8f28d9c7123b3d75d81c96413efe4","sha256":"4c39e3c255663451e3ed63fe470067bd7c0d63695c5571ccf8ed084f4fb0a412","author_claim":"Source notice: Preserve calmer resting fees, but charge more aggressively during real shocks.","n":200,"mean_diff":-125.28633217282712,"se":1.641784080247385,"seed_start":0,"mean_edge_screen":408.1027380694971,"url":"https://raw.githubusercontent.com/VictorQian03/amm-challenge/d039851267b8f28d9c7123b3d75d81c96413efe4/contracts/src/Strategy.sol"},{"repo":"0xpranav62/amm-challenge","commit":"4e24ad7eba497b263e877ebece7d0288c0ad810c","sha256":"6baac9c7e5346d6c7829472f5dceb1105efb5f54a8781213e62a024ab8379182","author_claim":"Source notice describes trade-size, impact and gap EWMAs around a mid-fee regime.","n":200,"mean_diff":-143.599418263963,"se":2.3661779092754114,"seed_start":0,"mean_edge_screen":389.7896519783612,"url":"https://raw.githubusercontent.com/0xpranav62/amm-challenge/4e24ad7eba497b263e877ebece7d0288c0ad810c/contracts/src/EdgeMaxxing.sol"},{"repo":"lumen-dev-a11y/amm-challenge-lab","commit":"4eae7bd93693b415d06adabb66d8db1e1975ab0b","sha256":"9af0bc4976773e86c0b5e2970d3fe32c98a2a30075535bf5c7857555605c266a","author_claim":"Source comment claims fixed 55 bps was best baseline so far (~379 edge / 200 simulations); not independently an official leaderboard claim.","n":200,"mean_diff":-154.19109951324782,"se":2.6881909378883044,"seed_start":0,"mean_edge_screen":379.19797072907636,"url":"https://raw.githubusercontent.com/lumen-dev-a11y/amm-challenge-lab/4eae7bd93693b415d06adabb66d8db1e1975ab0b/amm-challenge/contracts/src/Strategy.sol"},{"repo":"kmadorin/amm-challenge","commit":"ec151d5a2da3810a65736d6dbe0519f81219286d","sha256":"f0999affeaeb0d3a9bfd432baa01ea879cc49e70ac9937b704f78d2137d578fd","author_claim":"Source declares flat 30 bps baseline matching the normalizer.","n":200,"mean_diff":-185.35787149884956,"se":3.2838143392452572,"seed_start":0,"mean_edge_screen":348.03119874347465,"url":"https://raw.githubusercontent.com/kmadorin/amm-challenge/ec151d5a2da3810a65736d6dbe0519f81219286d/autoresearch/Strategy.sol"},{"repo":"giorgoschionas/amm-challenge","commit":"61ba5df13771e35a9887e51994d3eeb5edc4fade","sha256":"6fd32f2c52b2460046eb1b7fc133531f62e27404fd8efaa8633907691988a19d","author_claim":null,"n":200,"mean_diff":-206.68402720490096,"se":3.510341962886964,"seed_start":0,"mean_edge_screen":326.70504303742325,"url":"https://raw.githubusercontent.com/giorgoschionas/amm-challenge/61ba5df13771e35a9887e51994d3eeb5edc4fade/contracts/src/Strategy.sol"}],"seconds_per_simulation":0.17259881716932998,"matches_expected":{"CH_sha256":true,"config_matches_MatchRunner_seeds_0_9":true,"all_results_seed_order_checked":true,"determinism_checks":[{"file":"CH.sol","seed":0,"exact_run_single_equals_run_batch":true,"edge":478.31371956622775},{"file":"CH.sol","seed":600000,"exact_run_single_equals_run_batch":true,"edge":390.455054172132},{"file":"houseofjiao__amm-challenge.sol","seed":0,"exact_run_single_equals_run_batch":true,"edge":478.06825510932845}],"official_leaderboard_score":null,"official_leaderboard_note":"No official submission made. Scores are local measurements; no expected numeric CH edges were supplied."},"blocked":null,"citations":["https://raw.githubusercontent.com/giorgoschionas/amm-challenge/61ba5df13771e35a9887e51994d3eeb5edc4fade/contracts/src/Strategy.sol","https://raw.githubusercontent.com/The-CTra1n/amm-challenge/cd1bf7bc269dd22abbde65dd1e10f2df3b49eaf2/contracts/src/Strategy.sol","https://raw.githubusercontent.com/VictorQian03/amm-challenge/d039851267b8f28d9c7123b3d75d81c96413efe4/contracts/src/Strategy.sol","https://raw.githubusercontent.com/houseofjiao/amm-challenge/4f41eb914ca8df491dbb1068256bbf8561638149/contracts/src/Strategy.sol","https://raw.githubusercontent.com/eliizabethzhang/market-making-challenge/7156ff039f0ecd9ad62328664d997a762cf02cf0/contracts/src/Strategy.sol","https://raw.githubusercontent.com/ChengHua926/amm-challenge/d34a5199c59a4c44d5336a25f1436b4ae1f21104/contracts/src/Strategy.sol","https://raw.githubusercontent.com/kmadorin/amm-challenge/ec151d5a2da3810a65736d6dbe0519f81219286d/autoresearch/Strategy.sol","https://raw.githubusercontent.com/lumen-dev-a11y/amm-challenge-lab/4eae7bd93693b415d06adabb66d8db1e1975ab0b/amm-challenge/contracts/src/Strategy.sol","https://raw.githubusercontent.com/solosage1/amm-challenge/99dc1cfd0963c274df5f2145e8a282a78226fe9e/contracts/src/TmpFinal.sol","https://raw.githubusercontent.com/alexanderzliu/amm-challenge/e15b10d2193387e14b863342adacf9508821b471/my_strategy.sol","https://raw.githubusercontent.com/atvinicius/amm-challenge/78752c17e06b3f4b5d304291e29642f13693c2d7/strategy_submission.sol","https://raw.githubusercontent.com/0xniki/amm-challenge/56ca9d16f1099b42ee498e3af7651187b1971819/my_strategy.sol","https://raw.githubusercontent.com/0xpranav62/amm-challenge/4e24ad7eba497b263e877ebece7d0288c0ad810c/contracts/src/EdgeMaxxing.sol","https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_competition/competition/match.py","https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_competition/competition/config.py","https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_sim_rs/src/simulation/engine.rs","https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/contracts/src/VanillaStrategy.sol","https://api.github.com/repos/benedictbrady/amm-challenge/forks?per_page=100&sort=newest","https://api.github.com/search/repositories?q=amm-challenge+pushed:%3E2025-10-01&per_page=100","https://www.linkedin.com/pulse/amm-fee-challenge-notes-from-our-run-optimization-arena-qe3ff"],"method":{"engine_commit":"6b6921f8d463314aa7c96234e1be25a25245f704","baseline":"Unchanged pinned VanillaStrategy.sol, fixed 30 bps. Each candidate and CH is separately simulated against this normalizer; CH is never used as the competing pool.","parameters":"10000 steps; initial_price=100, initial_x=100, initial_y=10000, gbm_mu=0, gbm_dt=1, retail_size_sigma=1.2, retail_buy_prob=0.5.","seeds":"For each seed s, numpy.default_rng(s) draws size U[19,21], rate U[0.6,1], sigma U[0.000882,0.001008] in that order. SimulationConfig.seed=s; Rust price RNG uses s, retail RNG s+1.","engine_api":"amm_sim_rs.run_batch(creation_bytecode, vanilla_creation_bytecode, configs, 8); 20-seed chunks; edges[submission] retained per seed.","statistics":"Mean arithmetic edge. Standard error is sample standard deviation (ddof=1) / sqrt(n). Paired mean/se use per-seed (candidate edge - CH edge). Worst means five smallest edge values, or five smallest candidate-minus-CH differences. Timing is wall seconds / individual strategy simulations, includes config creation and run_batch, excludes validation/compilation/install. Some independent batches ran concurrently; these timings include contention.","selection":"Top three non-CH candidates by mean edge on seeds 0..199. Any additional already-started fresh comparisons are retained and labeled by seed range. Fresh comparison seeds 600000..601999; no local tuning of any source.","cap":"Each strategy run capped at 40 minutes between chunks; n records actual covered prefix."},"discovery":{"forks_returned":74,"repository_search_results":28,"standard_path":"Tried contracts/src/Strategy.sol at default branches for discovered repos excluding the five previously measured families and upstream; pinned all downloaded candidates via git ls-remote then re-fetched immutable raw URLs.","archives":"Also inspected Solidity path listings in archives of non-default-size discovered forks and search results; found autoresearch/Strategy.sol and nested amm-challenge/contracts/src/Strategy.sol. Also screened five unmodified contracts under other names: TmpFinal.sol, my_strategy.sol (two repos), strategy_submission.sol, and EdgeMaxxing.sol; chosen as public candidate files, without claiming they were their authors best.","limitations":["GitHub code search for AMMStrategyBase afterSwap language:Solidity returned HTTP 401 Unauthorized; unauthenticated web searches supplemented API fork/repository discovery.","Not exhaustive: other branches, most historical variants and strategies in private/unindexed repositories were not scored. Previously measured status outside the five excluded owners is not independently knowable.","Repository search used pushed:>2025-10-01. Unrelated prop-AMM and DEX tutorial repositories are not compatible candidates.","Archive download for signalproblem/0207-amm-challenge returned HTTP 404 Not Found."],"required_candidate":"eliizabethzhang/market-making-challenge at 7156ff039f0ecd9ad62328664d997a762cf02cf0 included without changes."},"writeups":[{"url":"https://www.linkedin.com/pulse/amm-fee-challenge-notes-from-our-run-optimization-arena-qe3ff","author":"Algebra Finance","summary":"The March 27, 2026 write-up describes long-term estimates of volatility, flow, arbitrage probability and the normalizer combined with short-term pool signals. It emphasizes asymmetric fees and probabilistic treatment of within-block ordering; it does not publish a Strategy.sol there."}],"recommendation":{"best_file":"CH.sol","best_sha256":"6dd68f77a70900319460215374143dbd5d924198450a46d9f5f91f6b1e3d35c3","decision":"Retain CH: no complete fresh comparison clears +2 standard errors.","promotions":[],"starter_comparison":null,"starter_note":"This measurement item compares public candidates with the specified CH reference; no new starter comparison was requested in the item."},"code":[{"file":"CH.sol","status":"recommended reference","sha256":"6dd68f77a70900319460215374143dbd5d924198450a46d9f5f91f6b1e3d35c3","code":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.24;\n\nimport {AMMStrategyBase} from \"./AMMStrategyBase.sol\";\nimport {TradeInfo} from \"./IAMMStrategy.sol\";\n\ncontract Strategy is AMMStrategyBase {\n    uint256 constant ELAPSED_CAP = 8;\n    uint256 constant SIGNAL_THRESHOLD = WAD / 650;\n    uint256 constant DIR_DECAY = 750000000000000000;\n    uint256 constant ACT_DECAY = 530000000000000000;\n    uint256 constant SIZE_DECAY = 530000000000000000;\n    uint256 constant TOX_DECAY = 910000000000000000;\n    uint256 constant SIGMA_DECAY = 690000000000000000;\n    uint256 constant LAMBDA_DECAY = 990000000000000000;\n    uint256 constant SIZE_BLEND_DECAY = 828000000000000000;\n    uint256 constant TOX_BLEND_DECAY = 51000000000000000;\n    uint256 constant ACT_BLEND_DECAY = 985000000000000000;\n    uint256 constant PHAT_ALPHA = 270000000000000000;\n    uint256 constant PHAT_ALPHA_RETAIL = 60000000000000000;\n    uint256 constant DIR_IMPACT_MULT = 4;\n    uint256 constant GATE_SIGMA_MULT = 7200000000000000000;\n    uint256 constant MIN_GATE = 30000000000000000;\n    uint256 constant TRADE_TOX_BOOST = 3500 * BPS;\n    uint256 constant STALE_ATTRACT_FRAC = 1050000000000000000;\n    uint256 constant RET_CAP = WAD / 35;\n    uint256 constant TOX_CAP = WAD / 5;\n    uint256 constant TRADE_RATIO_CAP = WAD / 5;\n    uint256 constant LAMBDA_CAP = 1820000000000000000;\n    uint256 constant STEP_COUNT_CAP = 64;\n    uint256 constant BASE_FEE = 4 * BPS;\n    uint256 constant SIGMA_COEF = 200000000000000000;\n    uint256 constant LAMBDA_COEF = 12 * BPS;\n    uint256 constant FLOW_SIZE_COEF = 4842 * BPS;\n    uint256 constant TOX_COEF = 300 * BPS;\n    uint256 constant TOX_QUAD_COEF = 15000 * BPS;\n    uint256 constant ACT_COEF = 91843 * BPS;\n    uint256 constant DIR_COEF = 20 * BPS;\n    uint256 constant DIR_TOX_COEF = 100 * BPS;\n    uint256 constant STALE_DIR_COEF = 6850 * BPS;\n    uint256 constant SIGMA_TOX_COEF = 500 * BPS;\n    uint256 constant TAIL_KNEE = 600 * BPS;\n    uint256 constant TAIL_SLOPE_PROTECT = 930000000000000000;\n    uint256 constant TAIL_SLOPE_ATTRACT = 850000000000000000;\n\n    function afterInitialize(uint256 initialX, uint256 initialY) external override returns (uint256, uint256) {\n        slots[0] = BASE_FEE; slots[1] = BASE_FEE; slots[2] = 0; slots[3] = WAD; slots[4] = 0;\n        slots[5] = initialX > 0 ? wdiv(initialY, initialX) : 100 * WAD;\n        slots[6] = 950000000000000; slots[7] = 800000000000000000; slots[8] = 2000000000000000;\n        slots[9] = 0; slots[10] = 0;\n        return (BASE_FEE, BASE_FEE);\n    }\n\n    function afterSwap(TradeInfo calldata trade) external override returns (uint256, uint256) {\n        uint256 prevBidFee = slots[0]; uint256 prevAskFee = slots[1]; uint256 lastTs = slots[2];\n        uint256 dirState = slots[3]; uint256 actEma = slots[4]; uint256 pHat = slots[5];\n        uint256 sigmaHat = slots[6]; uint256 lambdaHat = slots[7]; uint256 sizeHat = slots[8];\n        uint256 toxEma = slots[9]; uint256 stepTradeCount = slots[10];\n\n        bool isNewStep = trade.timestamp > lastTs;\n        if (isNewStep) {\n            uint256 elapsedRaw = trade.timestamp - lastTs;\n            uint256 elapsed = elapsedRaw > ELAPSED_CAP ? ELAPSED_CAP : elapsedRaw;\n            dirState = _decayCentered(dirState, DIR_DECAY, elapsed);\n            actEma = wmul(actEma, _powWad(ACT_DECAY, elapsed));\n            sizeHat = wmul(sizeHat, _powWad(SIZE_DECAY, elapsed));\n            toxEma = wmul(toxEma, _powWad(TOX_DECAY, elapsed));\n            if (stepTradeCount > 0 && elapsedRaw > 0) {\n                uint256 lambdaInst = (stepTradeCount * WAD) / elapsedRaw;\n                if (lambdaInst > LAMBDA_CAP) lambdaInst = LAMBDA_CAP;\n                lambdaHat = wmul(lambdaHat, LAMBDA_DECAY) + wmul(lambdaInst, WAD - LAMBDA_DECAY);\n            }\n            stepTradeCount = 0;\n        }\n\n        bool firstInStep = stepTradeCount == 0;\n        uint256 spot = trade.reserveX > 0 ? wdiv(trade.reserveY, trade.reserveX) : pHat;\n        if (pHat == 0) pHat = spot;\n\n        uint256 feeUsed = trade.isBuy ? prevBidFee : prevAskFee;\n        uint256 gamma = feeUsed < WAD ? WAD - feeUsed : 0;\n        uint256 pImplied;\n        if (gamma == 0) { pImplied = spot; }\n        else { pImplied = trade.isBuy ? wmul(spot, gamma) : wdiv(spot, gamma); }\n\n        {\n            uint256 ret = pHat > 0 ? wdiv(absDiff(pImplied, pHat), pHat) : 0;\n            uint256 alpha = firstInStep ? PHAT_ALPHA : PHAT_ALPHA_RETAIL;\n            uint256 adaptiveGate = wmul(sigmaHat, GATE_SIGMA_MULT);\n            if (adaptiveGate < MIN_GATE) adaptiveGate = MIN_GATE;\n            if (ret <= adaptiveGate) { pHat = wmul(pHat, WAD - alpha) + wmul(pImplied, alpha); }\n            if (firstInStep) {\n                if (ret > RET_CAP) ret = RET_CAP;\n                sigmaHat = wmul(sigmaHat, SIGMA_DECAY) + wmul(ret, WAD - SIGMA_DECAY);\n            }\n        }\n\n        uint256 tradeRatio = trade.reserveY > 0 ? wdiv(trade.amountY, trade.reserveY) : 0;\n        if (tradeRatio > TRADE_RATIO_CAP) tradeRatio = TRADE_RATIO_CAP;\n\n        if (tradeRatio > SIGNAL_THRESHOLD) {\n            uint256 push = tradeRatio * DIR_IMPACT_MULT;\n            if (push > WAD / 4) push = WAD / 4;\n            if (trade.isBuy) {\n                dirState = dirState + push;\n                if (dirState > 2 * WAD) dirState = 2 * WAD;\n            } else {\n                dirState = dirState > push ? dirState - push : 0;\n            }\n            actEma = wmul(actEma, ACT_BLEND_DECAY) + wmul(tradeRatio, WAD - ACT_BLEND_DECAY);\n            sizeHat = wmul(sizeHat, SIZE_BLEND_DECAY) + wmul(tradeRatio, WAD - SIZE_BLEND_DECAY);\n            if (sizeHat > WAD) sizeHat = WAD;\n        }\n\n        uint256 tox = pHat > 0 ? wdiv(absDiff(spot, pHat), pHat) : 0;\n        if (tox > TOX_CAP) tox = TOX_CAP;\n        toxEma = wmul(toxEma, TOX_BLEND_DECAY) + wmul(tox, WAD - TOX_BLEND_DECAY);\n        uint256 toxSignal = toxEma;\n\n        stepTradeCount = stepTradeCount + 1;\n        if (stepTradeCount > STEP_COUNT_CAP) stepTradeCount = STEP_COUNT_CAP;\n\n        uint256 flowSize = wmul(lambdaHat, sizeHat);\n        uint256 fBase = BASE_FEE + wmul(SIGMA_COEF, sigmaHat) + wmul(LAMBDA_COEF, lambdaHat) + wmul(FLOW_SIZE_COEF, flowSize);\n        uint256 fMid = fBase + wmul(TOX_COEF, toxSignal) + wmul(TOX_QUAD_COEF, wmul(toxSignal, toxSignal)) + wmul(ACT_COEF, actEma);\n        fMid = fMid + wmul(SIGMA_TOX_COEF, wmul(sigmaHat, toxSignal));\n\n        uint256 dirDev; bool sellPressure;\n        if (dirState >= WAD) { dirDev = dirState - WAD; sellPressure = true; }\n        else { dirDev = WAD - dirState; sellPressure = false; }\n\n        uint256 skew = wmul(DIR_COEF, dirDev) + wmul(DIR_TOX_COEF, wmul(dirDev, toxSignal));\n        uint256 bidFee; uint256 askFee;\n        if (sellPressure) {\n            bidFee = fMid + skew;\n            askFee = fMid > skew ? fMid - skew : 0;\n        } else {\n            askFee = fMid + skew;\n            bidFee = fMid > skew ? fMid - skew : 0;\n        }\n\n        {\n            uint256 staleShift = wmul(STALE_DIR_COEF, toxSignal);\n            uint256 attractShift = wmul(staleShift, STALE_ATTRACT_FRAC);\n            if (spot >= pHat) {\n                bidFee = bidFee + staleShift;\n                askFee = askFee > attractShift ? askFee - attractShift : 0;\n            } else {\n                askFee = askFee + staleShift;\n                bidFee = bidFee > attractShift ? bidFee - attractShift : 0;\n            }\n        }\n\n        {\n            bool tradeAligned = (trade.isBuy && spot >= pHat) || (!trade.isBuy && spot < pHat);\n            if (tradeAligned) {\n                uint256 tradeBoost = wmul(TRADE_TOX_BOOST, tradeRatio);\n                if (trade.isBuy) { bidFee = bidFee + tradeBoost; }\n                else { askFee = askFee + tradeBoost; }\n            }\n        }\n\n        if (sellPressure) {\n            bidFee = clampFee(_compressTailWithSlope(bidFee, TAIL_SLOPE_PROTECT));\n            askFee = clampFee(_compressTailWithSlope(askFee, TAIL_SLOPE_ATTRACT));\n        } else {\n            askFee = clampFee(_compressTailWithSlope(askFee, TAIL_SLOPE_PROTECT));\n            bidFee = clampFee(_compressTailWithSlope(bidFee, TAIL_SLOPE_ATTRACT));\n        }\n\n        slots[0] = bidFee; slots[1] = askFee; slots[2] = trade.timestamp;\n        slots[3] = dirState; slots[4] = actEma; slots[5] = pHat;\n        slots[6] = sigmaHat; slots[7] = lambdaHat; slots[8] = sizeHat;\n        slots[9] = toxEma; slots[10] = stepTradeCount;\n\n        return (bidFee, askFee);\n    }\n\n    function _compressTailWithSlope(uint256 fee, uint256 slope) internal pure returns (uint256) {\n        if (fee <= TAIL_KNEE) return fee;\n        return TAIL_KNEE + wmul(fee - TAIL_KNEE, slope);\n    }\n\n    function _powWad(uint256 factor, uint256 exp) internal pure returns (uint256 result) {\n        result = WAD;\n        while (exp > 0) {\n            if (exp & 1 == 1) result = wmul(result, factor);\n            factor = wmul(factor, factor);\n            exp >>= 1;\n        }\n    }\n\n    function _decayCentered(uint256 centered, uint256 decayFactor, uint256 elapsed) internal pure returns (uint256) {\n        uint256 mul = _powWad(decayFactor, elapsed);\n        if (centered >= WAD) { return WAD + wmul(centered - WAD, mul); }\n        uint256 below = wmul(WAD - centered, mul);\n        return below < WAD ? WAD - below : 0;\n    }\n\n    function getName() external pure override returns (string memory) { return \"no_cubic\"; }\n}\n","paired_gain_over_CH":null,"delta":"Unchanged CH reference."},{"file":"houseofjiao__amm-challenge.sol","status":"not promoted; source included because screening point estimate beat CH","sha256":"07d5510da1972193d7cf20623de5693d54c123ce035ed158e2a7c1dee529bde0","code":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.24;\n\nimport {AMMStrategyBase} from \"./AMMStrategyBase.sol\";\nimport {TradeInfo} from \"./IAMMStrategy.sol\";\n\ncontract Strategy is AMMStrategyBase {\n    uint256 constant ELAPSED_CAP = 8;\n    uint256 constant SIGNAL_THRESHOLD = WAD / 650;\n    uint256 constant DIR_DECAY = 750000000000000000;\n    uint256 constant ACT_DECAY = 530000000000000000;\n    uint256 constant SIZE_DECAY = 530000000000000000;\n    uint256 constant TOX_DECAY = 910000000000000000;\n    uint256 constant SIGMA_DECAY = 690000000000000000;\n    uint256 constant LAMBDA_DECAY = 990000000000000000;\n    uint256 constant SIZE_BLEND_DECAY = 828000000000000000;\n    uint256 constant TOX_BLEND_DECAY = 51000000000000000;\n    uint256 constant ACT_BLEND_DECAY = 985000000000000000;\n    uint256 constant PHAT_ALPHA = 270000000000000000;\n    uint256 constant PHAT_ALPHA_RETAIL = 60000000000000000;\n    uint256 constant DIR_IMPACT_MULT = 4;\n    uint256 constant GATE_SIGMA_MULT = 7200000000000000000; // 7.2 * WAD\n    uint256 constant MIN_GATE = 30000000000000000;\n    uint256 constant TOX_CUBIC_COEF = 20000 * BPS;\n    uint256 constant TRADE_TOX_BOOST = 3500 * BPS;\n    uint256 constant STALE_ATTRACT_FRAC = 1050000000000000000;\n    uint256 constant RET_CAP = WAD / 35;\n    uint256 constant TOX_CAP = WAD / 5;\n    uint256 constant TRADE_RATIO_CAP = WAD / 5;\n    uint256 constant LAMBDA_CAP = 1820000000000000000; // 1.82 * WAD\n    uint256 constant STEP_COUNT_CAP = 64;\n    uint256 constant BASE_FEE = 4 * BPS;\n    uint256 constant SIGMA_COEF = 200000000000000000;\n    uint256 constant LAMBDA_COEF = 12 * BPS;\n    uint256 constant FLOW_SIZE_COEF = 4842 * BPS;\n    uint256 constant TOX_COEF = 300 * BPS;\n    uint256 constant TOX_QUAD_COEF = 15000 * BPS;\n    uint256 constant ACT_COEF = 91843 * BPS;\n    uint256 constant DIR_COEF = 20 * BPS;\n    uint256 constant DIR_TOX_COEF = 100 * BPS;\n    uint256 constant STALE_DIR_COEF = 6850 * BPS;\n    uint256 constant SIGMA_TOX_COEF = 500 * BPS;\n    uint256 constant TAIL_KNEE = 600 * BPS;\n    uint256 constant TAIL_SLOPE_PROTECT = 930000000000000000;\n    uint256 constant TAIL_SLOPE_ATTRACT = 850000000000000000;\n\n    function afterInitialize(uint256 initialX, uint256 initialY) external override returns (uint256, uint256) {\n        slots[0] = BASE_FEE; slots[1] = BASE_FEE; slots[2] = 0; slots[3] = WAD; slots[4] = 0;\n        slots[5] = initialX > 0 ? wdiv(initialY, initialX) : 100 * WAD;\n        slots[6] = 950000000000000; slots[7] = 800000000000000000; slots[8] = 2000000000000000;\n        slots[9] = 0; slots[10] = 0;\n        return (BASE_FEE, BASE_FEE);\n    }\n\n    function afterSwap(TradeInfo calldata trade) external override returns (uint256, uint256) {\n        uint256 prevBidFee = slots[0]; uint256 prevAskFee = slots[1]; uint256 lastTs = slots[2];\n        uint256 dirState = slots[3]; uint256 actEma = slots[4]; uint256 pHat = slots[5];\n        uint256 sigmaHat = slots[6]; uint256 lambdaHat = slots[7]; uint256 sizeHat = slots[8];\n        uint256 toxEma = slots[9]; uint256 stepTradeCount = slots[10];\n\n        bool isNewStep = trade.timestamp > lastTs;\n        if (isNewStep) {\n            uint256 elapsedRaw = trade.timestamp - lastTs;\n            uint256 elapsed = elapsedRaw > ELAPSED_CAP ? ELAPSED_CAP : elapsedRaw;\n            dirState = _decayCentered(dirState, DIR_DECAY, elapsed);\n            actEma = wmul(actEma, _powWad(ACT_DECAY, elapsed));\n            sizeHat = wmul(sizeHat, _powWad(SIZE_DECAY, elapsed));\n            toxEma = wmul(toxEma, _powWad(TOX_DECAY, elapsed));\n            if (stepTradeCount > 0 && elapsedRaw > 0) {\n                uint256 lambdaInst = (stepTradeCount * WAD) / elapsedRaw;\n                if (lambdaInst > LAMBDA_CAP) lambdaInst = LAMBDA_CAP;\n                lambdaHat = wmul(lambdaHat, LAMBDA_DECAY) + wmul(lambdaInst, WAD - LAMBDA_DECAY);\n            }\n            stepTradeCount = 0;\n        }\n\n        bool firstInStep = stepTradeCount == 0;\n        uint256 spot = trade.reserveX > 0 ? wdiv(trade.reserveY, trade.reserveX) : pHat;\n        if (pHat == 0) pHat = spot;\n\n        uint256 feeUsed = trade.isBuy ? prevBidFee : prevAskFee;\n        uint256 gamma = feeUsed < WAD ? WAD - feeUsed : 0;\n        uint256 pImplied;\n        if (gamma == 0) { pImplied = spot; }\n        else { pImplied = trade.isBuy ? wmul(spot, gamma) : wdiv(spot, gamma); }\n\n        {\n            uint256 ret = pHat > 0 ? wdiv(absDiff(pImplied, pHat), pHat) : 0;\n            uint256 alpha = firstInStep ? PHAT_ALPHA : PHAT_ALPHA_RETAIL;\n            uint256 adaptiveGate = wmul(sigmaHat, GATE_SIGMA_MULT);\n            if (adaptiveGate < MIN_GATE) adaptiveGate = MIN_GATE;\n            if (ret <= adaptiveGate) { pHat = wmul(pHat, WAD - alpha) + wmul(pImplied, alpha); }\n            if (firstInStep) {\n                if (ret > RET_CAP) ret = RET_CAP;\n                sigmaHat = wmul(sigmaHat, SIGMA_DECAY) + wmul(ret, WAD - SIGMA_DECAY);\n            }\n        }\n\n        uint256 tradeRatio = trade.reserveY > 0 ? wdiv(trade.amountY, trade.reserveY) : 0;\n        if (tradeRatio > TRADE_RATIO_CAP) tradeRatio = TRADE_RATIO_CAP;\n\n        if (tradeRatio > SIGNAL_THRESHOLD) {\n            uint256 push = tradeRatio * DIR_IMPACT_MULT;\n            if (push > WAD / 4) push = WAD / 4;\n            if (trade.isBuy) {\n                dirState = dirState + push;\n                if (dirState > 2 * WAD) dirState = 2 * WAD;\n            } else {\n                dirState = dirState > push ? dirState - push : 0;\n            }\n            actEma = wmul(actEma, ACT_BLEND_DECAY) + wmul(tradeRatio, WAD - ACT_BLEND_DECAY);\n            sizeHat = wmul(sizeHat, SIZE_BLEND_DECAY) + wmul(tradeRatio, WAD - SIZE_BLEND_DECAY);\n            if (sizeHat > WAD) sizeHat = WAD;\n        }\n\n        uint256 tox = pHat > 0 ? wdiv(absDiff(spot, pHat), pHat) : 0;\n        if (tox > TOX_CAP) tox = TOX_CAP;\n        toxEma = wmul(toxEma, TOX_BLEND_DECAY) + wmul(tox, WAD - TOX_BLEND_DECAY);\n        uint256 toxSignal = toxEma;\n\n        stepTradeCount = stepTradeCount + 1;\n        if (stepTradeCount > STEP_COUNT_CAP) stepTradeCount = STEP_COUNT_CAP;\n\n        uint256 flowSize = wmul(lambdaHat, sizeHat);\n        uint256 fBase = BASE_FEE + wmul(SIGMA_COEF, sigmaHat) + wmul(LAMBDA_COEF, lambdaHat) + wmul(FLOW_SIZE_COEF, flowSize);\n        uint256 fMid = fBase + wmul(TOX_COEF, toxSignal) + wmul(TOX_QUAD_COEF, wmul(toxSignal, toxSignal)) + wmul(ACT_COEF, actEma);\n        fMid = fMid + wmul(SIGMA_TOX_COEF, wmul(sigmaHat, toxSignal));\n\n        {\n            uint256 toxCubed = wmul(toxSignal, wmul(toxSignal, toxSignal));\n            fMid = fMid + wmul(TOX_CUBIC_COEF, toxCubed);\n        }\n\n        uint256 dirDev; bool sellPressure;\n        if (dirState >= WAD) { dirDev = dirState - WAD; sellPressure = true; }\n        else { dirDev = WAD - dirState; sellPressure = false; }\n\n        uint256 skew = wmul(DIR_COEF, dirDev) + wmul(DIR_TOX_COEF, wmul(dirDev, toxSignal));\n        uint256 bidFee; uint256 askFee;\n        if (sellPressure) {\n            bidFee = fMid + skew;\n            askFee = fMid > skew ? fMid - skew : 0;\n        } else {\n            askFee = fMid + skew;\n            bidFee = fMid > skew ? fMid - skew : 0;\n        }\n\n        {\n            uint256 staleShift = wmul(STALE_DIR_COEF, toxSignal);\n            uint256 attractShift = wmul(staleShift, STALE_ATTRACT_FRAC);\n            if (spot >= pHat) {\n                bidFee = bidFee + staleShift;\n                askFee = askFee > attractShift ? askFee - attractShift : 0;\n            } else {\n                askFee = askFee + staleShift;\n                bidFee = bidFee > attractShift ? bidFee - attractShift : 0;\n            }\n        }\n\n        {\n            bool tradeAligned = (trade.isBuy && spot >= pHat) || (!trade.isBuy && spot < pHat);\n            if (tradeAligned) {\n                uint256 tradeBoost = wmul(TRADE_TOX_BOOST, tradeRatio);\n                if (trade.isBuy) { bidFee = bidFee + tradeBoost; }\n                else { askFee = askFee + tradeBoost; }\n            }\n        }\n\n        if (sellPressure) {\n            bidFee = clampFee(_compressTailWithSlope(bidFee, TAIL_SLOPE_PROTECT));\n            askFee = clampFee(_compressTailWithSlope(askFee, TAIL_SLOPE_ATTRACT));\n        } else {\n            askFee = clampFee(_compressTailWithSlope(askFee, TAIL_SLOPE_PROTECT));\n            bidFee = clampFee(_compressTailWithSlope(bidFee, TAIL_SLOPE_ATTRACT));\n        }\n\n        slots[0] = bidFee; slots[1] = askFee; slots[2] = trade.timestamp;\n        slots[3] = dirState; slots[4] = actEma; slots[5] = pHat;\n        slots[6] = sigmaHat; slots[7] = lambdaHat; slots[8] = sizeHat;\n        slots[9] = toxEma; slots[10] = stepTradeCount;\n\n        return (bidFee, askFee);\n    }\n\n    function _compressTailWithSlope(uint256 fee, uint256 slope) internal pure returns (uint256) {\n        if (fee <= TAIL_KNEE) return fee;\n        return TAIL_KNEE + wmul(fee - TAIL_KNEE, slope);\n    }\n\n    function _powWad(uint256 factor, uint256 exp) internal pure returns (uint256 result) {\n        result = WAD;\n        while (exp > 0) {\n            if (exp & 1 == 1) result = wmul(result, factor);\n            factor = wmul(factor, factor);\n            exp >>= 1;\n        }\n    }\n\n    function _decayCentered(uint256 centered, uint256 decayFactor, uint256 elapsed) internal pure returns (uint256) {\n        uint256 mul = _powWad(decayFactor, elapsed);\n        if (centered >= WAD) { return WAD + wmul(centered - WAD, mul); }\n        uint256 below = wmul(WAD - centered, mul);\n        return below < WAD ? WAD - below : 0;\n    }\n\n    function getName() external pure override returns (string memory) { return \"category.xyz\"; }\n}\n","paired_gain_over_CH":{"seed_start":600000,"n":2000,"mean_diff":-0.005641713919910302,"se":0.02384298621911279},"delta":"--- CH.sol\n+++ houseofjiao__amm-challenge.sol\n@@ -19,14 +19,15 @@\n     uint256 constant PHAT_ALPHA = 270000000000000000;\n     uint256 constant PHAT_ALPHA_RETAIL = 60000000000000000;\n     uint256 constant DIR_IMPACT_MULT = 4;\n-    uint256 constant GATE_SIGMA_MULT = 7200000000000000000;\n+    uint256 constant GATE_SIGMA_MULT = 7200000000000000000; // 7.2 * WAD\n     uint256 constant MIN_GATE = 30000000000000000;\n+    uint256 constant TOX_CUBIC_COEF = 20000 * BPS;\n     uint256 constant TRADE_TOX_BOOST = 3500 * BPS;\n     uint256 constant STALE_ATTRACT_FRAC = 1050000000000000000;\n     uint256 constant RET_CAP = WAD / 35;\n     uint256 constant TOX_CAP = WAD / 5;\n     uint256 constant TRADE_RATIO_CAP = WAD / 5;\n-    uint256 constant LAMBDA_CAP = 1820000000000000000;\n+    uint256 constant LAMBDA_CAP = 1820000000000000000; // 1.82 * WAD\n     uint256 constant STEP_COUNT_CAP = 64;\n     uint256 constant BASE_FEE = 4 * BPS;\n     uint256 constant SIGMA_COEF = 200000000000000000;\n@@ -125,6 +126,11 @@\n         uint256 fMid = fBase + wmul(TOX_COEF, toxSignal) + wmul(TOX_QUAD_COEF, wmul(toxSignal, toxSignal)) + wmul(ACT_COEF, actEma);\n         fMid = fMid + wmul(SIGMA_TOX_COEF, wmul(sigmaHat, toxSignal));\n \n+        {\n+            uint256 toxCubed = wmul(toxSignal, wmul(toxSignal, toxSignal));\n+            fMid = fMid + wmul(TOX_CUBIC_COEF, toxCubed);\n+        }\n+\n         uint256 dirDev; bool sellPressure;\n         if (dirState >= WAD) { dirDev = dirState - WAD; sellPressure = true; }\n         else { dirDev = WAD - dirState; sellPressure = false; }\n@@ -197,5 +203,5 @@\n         return below < WAD ? WAD - below : 0;\n     }\n \n-    function getName() external pure override returns (string memory) { return \"no_cubic\"; }\n+    function getName() external pure override returns (string memory) { return \"category.xyz\"; }\n }\n"}]}
