{"credit":"Taylor (gtmcknight), github.com/gtmcknight/amm-sim@4812a6382311624e1506aca131ca35c378f930d9 research/solved: the solved policy, filter, tables, exact-arithmetic tell, replica and gates that the board entry TellMinLookup and this harness are built on. This item only measures gas.","item":"copy-a","batch":"e02-gas-paths","ready":true,"base":{"name":"TellMinLookup","artifact":"https://api.imd.fun/artifacts/fd2f147e94f3523e4c4f91e43dc98b88e9ce8ef1060d2939367445711154a16a","source_sha256":"99d031f41074ea872c78fa7dec5db33d9f20f3251e29bdbb4682c92791334b72","source_characters":40615,"runtime_bytes":21055,"runtime_sha256":"b6f3c2c2a78f7f5676d16fa8f78ee9ea43fda4e16f957aa3e1eed2bfe15b1d05","compiler":"solc 0.8.24, optimizer 200, viaIR, paris"},"replica_gate":{"command":"replica_gate.py 60000 8 alpha=0.35 (bundle Driver and Shadow, with recording added)","seeds":[60000,60001,60002,60003,60004,60005,60006,60007],"callbacks":90802,"pass":true,"max_bps":[4.4848741040381945e-07,4.580118229124963e-07],"tolerance_bps":0.01,"rule_moves":7470,"bound_binds":52340,"guard_shifts":0,"peak_transaction_gas_pyrevm":181935,"per_seed":[{"seed":60000,"n":11100,"peak_transaction_gas":165728,"rule_moves":930,"bound_binds":6351},{"seed":60001,"n":10861,"peak_transaction_gas":169612,"rule_moves":870,"bound_binds":6303},{"seed":60002,"n":12004,"peak_transaction_gas":181935,"rule_moves":960,"bound_binds":7017},{"seed":60003,"n":12029,"peak_transaction_gas":174763,"rule_moves":1017,"bound_binds":7039},{"seed":60004,"n":12385,"peak_transaction_gas":165864,"rule_moves":1103,"bound_binds":7367},{"seed":60005,"n":12407,"peak_transaction_gas":156977,"rule_moves":1112,"bound_binds":7191},{"seed":60006,"n":10826,"peak_transaction_gas":179764,"rule_moves":814,"bound_binds":6199},{"seed":60007,"n":9190,"peak_transaction_gas":178189,"rule_moves":664,"bound_binds":4873}],"matches_published_rows_n_peak_moves_binds":true,"lockstep_mismatches":{"fee_probe_vs_base":0,"arb_vs_shadow":0,"move_vs_shadow":0,"bind_vs_shadow":0,"refund":0,"state_probe_vs_base":0,"eng_fee_or_refund":0},"note":"peak_transaction_gas is pyrevm gas_used as the published gate reports it (21,000 + calldata + call gas); the path table uses the call gas alone"},"coverage":{"callbacks":90802,"in_path_table":90802,"paths":13,"first_callback_share":0.6333,"unobserved":"no non-arb callback left the rival estimate untouched (c == r never occurred), so rival_update neither appears only with arb_read true; no arb-read first callback had a gap of 13+; a trade at timestamp 0 counts as a later callback because the stored timestamp starts at 0"},"gas_measure":"paths[].gas, peak.gas, isArb_gas: gas of the afterSwap call itself in the replica gate (no 21,000 base, no calldata cost). engine_equiv_tx_gas: the same callback replayed as its own transaction, the measure the engine reports.","overall":{"replica_gas":{"min":58518,"mean":85111.5,"p99":120857,"max":159719},"engine_equiv_tx_gas":{"min":102110,"mean":130380.0,"p99":167109,"max":205935}},"paths":[{"first":true,"arb_read":true,"rival_update":"neither","gap_bucket":"1","n":28095,"gas":{"min":84714,"mean":88530.5,"p99":89996,"max":91831},"share":0.30941,"tell_hit_share":1.0,"engine_equiv_tx_gas":{"mean":134751.6,"p99":136218,"max":138023},"offset":{"min":46168,"max":46252},"mean_parts":{"isArb":14555.0,"belief":20993.7,"pull":0.0,"lookup":43130.2,"storage":1100.0,"other":8751.6,"belief_silent_steps_loop":61.0}},{"first":true,"arb_read":true,"rival_update":"neither","gap_bucket":"2-6","n":2860,"gas":{"min":89309,"mean":95385.9,"p99":109333,"max":112007},"share":0.0315,"tell_hit_share":1.0,"engine_equiv_tx_gas":{"mean":141604.8,"p99":155549,"max":158223},"offset":{"min":46180,"max":46240},"mean_parts":{"isArb":14602.0,"belief":27589.6,"pull":0.0,"lookup":43342.1,"storage":1100.0,"other":8752.1,"belief_silent_steps_loop":6254.0}},{"first":true,"arb_read":true,"rival_update":"neither","gap_bucket":"7-12","n":37,"gas":{"min":111219,"mean":117491.4,"p99":127815,"max":127815},"share":0.00041,"tell_hit_share":1.0,"engine_equiv_tx_gas":{"mean":163711.3,"p99":174031,"max":174031},"offset":{"min":46192,"max":46240},"mean_parts":{"isArb":14650.9,"belief":49614.5,"pull":0.0,"lookup":43388.9,"storage":1100.0,"other":8737.2,"belief_silent_steps_loop":28217.1}},{"first":true,"arb_read":false,"rival_update":"bound","gap_bucket":"1","n":14467,"gas":{"min":98014,"mean":104392.5,"p99":106685,"max":108495},"share":0.15932,"tell_hit_share":0.0012,"engine_equiv_tx_gas":{"mean":150615.2,"p99":152915,"max":154723},"offset":{"min":46180,"max":46252},"mean_parts":{"isArb":17827.6,"belief":21215.0,"pull":0.0,"lookup":58185.3,"storage":1000.1,"other":6164.5,"belief_silent_steps_loop":61.0}},{"first":true,"arb_read":false,"rival_update":"bound","gap_bucket":"2-6","n":8969,"gas":{"min":102262,"mean":111437.6,"p99":126138,"max":129275},"share":0.09878,"tell_hit_share":0.001,"engine_equiv_tx_gas":{"mean":157660.4,"p99":172359,"max":175479},"offset":{"min":46168,"max":46252},"mean_parts":{"isArb":17829.1,"belief":28121.2,"pull":0.0,"lookup":58323.7,"storage":1000.1,"other":6163.5,"belief_silent_steps_loop":6930.9}},{"first":true,"arb_read":false,"rival_update":"bound","gap_bucket":"7-12","n":131,"gas":{"min":123925,"mean":133099.1,"p99":147384,"max":152559},"share":0.00144,"tell_hit_share":0.0,"engine_equiv_tx_gas":{"mean":179321.6,"p99":193612,"max":198763},"offset":{"min":46192,"max":46252},"mean_parts":{"isArb":17531.2,"belief":49894.8,"pull":0.0,"lookup":58514.1,"storage":1000.0,"other":6159.0,"belief_silent_steps_loop":28705.6}},{"first":true,"arb_read":false,"rival_update":"bound","gap_bucket":"13+","n":3,"gas":{"min":155164,"mean":155572.0,"p99":155973,"max":155973},"share":3e-05,"tell_hit_share":0.0,"engine_equiv_tx_gas":{"mean":201788.0,"p99":202189,"max":202189},"offset":{"min":46216,"max":46216},"mean_parts":{"isArb":18201.3,"belief":72041.0,"pull":0.0,"lookup":58181.3,"storage":1000.0,"other":6148.3,"belief_silent_steps_loop":50703.0}},{"first":true,"arb_read":false,"rival_update":"pull","gap_bucket":"1","n":1669,"gas":{"min":106051,"mean":110455.5,"p99":111739,"max":112269},"share":0.01838,"tell_hit_share":0.0,"engine_equiv_tx_gas":{"mean":156673.2,"p99":157931,"max":158509},"offset":{"min":46180,"max":46240},"mean_parts":{"isArb":18236.1,"belief":21311.6,"pull":5622.0,"lookup":58068.8,"storage":1000.0,"other":6217.0,"belief_silent_steps_loop":61.0}},{"first":true,"arb_read":false,"rival_update":"pull","gap_bucket":"2-6","n":1258,"gas":{"min":110193,"mean":117888.0,"p99":131975,"max":132644},"share":0.01385,"tell_hit_share":0.0,"engine_equiv_tx_gas":{"mean":164105.8,"p99":178190,"max":178872},"offset":{"min":46180,"max":46240},"mean_parts":{"isArb":18281.5,"belief":28541.1,"pull":5622.0,"lookup":58228.1,"storage":1000.0,"other":6215.2,"belief_silent_steps_loop":7241.7}},{"first":true,"arb_read":false,"rival_update":"pull","gap_bucket":"7-12","n":16,"gas":{"min":134170,"mean":138580.1,"p99":157548,"max":157548},"share":0.00018,"tell_hit_share":0.0,"engine_equiv_tx_gas":{"mean":184796.8,"p99":203764,"max":203764},"offset":{"min":46204,"max":46228},"mean_parts":{"isArb":18289.4,"belief":49050.1,"pull":5622.0,"lookup":58392.6,"storage":1000.0,"other":6226.0,"belief_silent_steps_loop":27716.5}},{"first":true,"arb_read":false,"rival_update":"pull","gap_bucket":"13+","n":2,"gas":{"min":156598,"mean":158158.5,"p99":159719,"max":159719},"share":2e-05,"tell_hit_share":0.0,"engine_equiv_tx_gas":{"mean":204368.5,"p99":205935,"max":205935},"offset":{"min":46204,"max":46216},"mean_parts":{"isArb":18463.5,"belief":68539.5,"pull":5622.0,"lookup":58274.5,"storage":1000.0,"other":6259.0,"belief_silent_steps_loop":47273.0}},{"first":false,"arb_read":false,"rival_update":"bound","gap_bucket":"0","n":28770,"gas":{"min":58518,"mean":62320.5,"p99":66058,"max":68690},"share":0.31684,"tell_hit_share":0.0,"engine_equiv_tx_gas":{"mean":105943.9,"p99":109698,"max":112294},"offset":{"min":43568,"max":43652},"mean_parts":{"isArb":0.0,"belief":0.0,"pull":0.0,"lookup":55154.9,"storage":800.0,"other":6365.7,"belief_silent_steps_loop":0.0}},{"first":false,"arb_read":false,"rival_update":"pull","gap_bucket":"0","n":4525,"gas":{"min":64237,"mean":68087.1,"p99":70445,"max":71823},"share":0.04983,"tell_hit_share":0.0,"engine_equiv_tx_gas":{"mean":111705.1,"p99":114073,"max":115439},"offset":{"min":43580,"max":43652},"mean_parts":{"isArb":0.0,"belief":0.0,"pull":5622.0,"lookup":55241.3,"storage":800.0,"other":6423.8,"belief_silent_steps_loop":0.0}}],"peak":{"gas":159719,"path":{"first":true,"arb_read":false,"rival_update":"pull","gap_bucket":"13+"},"parts":{"isArb":18453,"belief":70185,"pull":5622,"lookup":58200,"storage":1000,"other":6259},"parts_detail":{"belief_silent_steps_loop":48855,"belief_observation_step":21330,"tell_chance_ulpOverGrid":68,"ln_s_and_ln_r":5242,"rival_bound_block_without_pull":592,"lookup_pre_root_levels_pos2":3978,"lookup_qt_struct_and_table_copy":7876,"lookup_surf_ask":25396,"lookup_surf_bid":20200,"lookup_fee_exp_clip":750,"entry_dispatch_decode":301,"unpack_state_and_spot":220,"guard_fee":187,"pack_state":154,"store_reserves_overhead":35,"return_tail":172,"probe_overhead_total":712},"seed":60002,"callback":5864,"timestamp":4833,"steps_since_previous_own_callback":15,"tell_hit":false,"calldata_gas":1216,"engine_equiv_tx_gas":205935,"engine_view":{"transaction_base":21000,"calldata":1216,"storage":25000,"compute":158719,"total":205935},"parts_definition":{"isArb":"TellMath.isArb call","belief":"update(): the filter update over the gap = belief_silent_steps_loop (trunc once per silent step, capped at 12) + belief_observation_step","pull":"the ln, ln, exp of the rival pull branch","lookup":"fees(): sd level, pos2, qt, both surf calls, fee exp and clip","storage":"SLOAD and SSTORE opcodes at the gate cost of 100 each (the engine charges 24,000 more here)","other":"peak gas minus the five parts: dispatch and decode, state unpack and spot, ulpOverGridWad chance, rival bound test, ln(s) and ln(r), guardFee, state packing, return"},"stub_check":{"what":"isArb call replaced by a non-constant false (the tell missed on this callback, so fees are unchanged); both versions replayed as one transaction, where the storage total is the same with and without the two reserve SLOADs","base_tx_gas":205935,"stub_tx_gas":187574,"difference":18361,"probe_isArb_part":18453,"same_fees":true},"pre_state":{"seed":60002,"callback":5864,"slots_0_to_5":["4559470195298152742","32410620788045129916344253093316862841402196206641401240354","1639480626381061162561587922471537818468352","102887996471430791168","9719306763619144826880","0"],"calldata":"c2babb57000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0bb2aa444fcb00000000000000000000000000000000000000000000000003bedf65573daa40000000000000000000000000000000000000000000000000000000000000012e1000000000000000000000000000000000000000000000005933adc800f01c00000000000000000000000000000000000000000000000020f1dd0384d43a00000"}},"isArb_gas":{"min":10141,"mean":16087.8,"max":19966,"n":57507,"scope":"TellMath.isArb inside afterSwap, every first callback of the 8 replica seeds (probe variant; the two SLOADs of the previous reserves excluded)","tell_hit":{"n":31019,"min":10141,"mean":14558.8,"max":15857},"tell_miss":{"n":26488,"min":13934,"mean":17878.4,"max":19966},"chance_ulpOverGridWad_when_hit":{"n":31019,"min":2830,"mean":3031.2,"max":3372},"published_external_isArb_vectors":{"min":14352,"mean":17064.5,"max":20242,"n":11856,"note":"from the BASE artifact, external isArb wrapper on the vector corpus; not rerun here"}},"part_ranges":{"note":"over all callbacks of the 8 replica seeds (n, min, mean, max); belief_silent_loop_by_silent_steps is keyed by min(gap - 1, 12)","belief_update_total":{"n":57507,"min":19084,"mean":22759.7,"max":72089},"belief_observation_step":{"n":57507,"min":19023,"mean":21066.9,"max":22021},"gas_per_silent_step":{"n":13276,"min":3215.0,"mean":4170.1,"max":4259.0},"belief_silent_loop_by_silent_steps":{"0":{"n":44231,"min":61,"mean":61.0,"max":61},"1":{"n":8058,"min":3298,"mean":4224.3,"max":4320},"2":{"n":2974,"min":6491,"mean":8416.5,"max":8555},"3":{"n":1283,"min":9803,"mean":12609.9,"max":12802},"4":{"n":551,"min":13031,"mean":16808.4,"max":17049},"5":{"n":221,"min":18866,"mean":21039.1,"max":21296},"6":{"n":104,"min":19701,"mean":25059.9,"max":25480},"7":{"n":38,"min":28090,"mean":29382.7,"max":29727},"8":{"n":24,"min":29306,"mean":33556.6,"max":33981},"9":{"n":9,"min":37838,"mean":37972.8,"max":38102},"10":{"n":7,"min":34848,"mean":40869.6,"max":42363},"11":{"n":2,"min":45569,"mean":45977.5,"max":46386},"12":{"n":5,"min":45691,"mean":49331.0,"max":50794}},"pull_ln_exp":{"n":7470,"min":5622,"mean":5622.0,"max":5622},"lookup_fees_arb_read_table0":{"n":30992,"min":41328,"mean":43150.1,"max":45596},"lookup_fees_first_nonarb":{"n":26515,"min":56563,"mean":58228.6,"max":61979},"lookup_fees_later":{"n":33295,"min":51348,"mean":55166.6,"max":61492},"lookup_surf_ask":{"n":90802,"min":13193,"mean":20282.6,"max":35284},"lookup_surf_bid":{"n":90802,"min":13186,"mean":20407.0,"max":35239},"lookup_qt_struct_and_table_copy":{"n":90802,"min":7841,"mean":7872.9,"max":7921},"ln_s_and_ln_r":{"n":90802,"min":5242,"mean":5242.0,"max":5364},"gap_histogram_first_callbacks":{"1":44231,"2":8058,"3":2974,"4":1283,"5":551,"6":221,"7":104,"8":38,"9":24,"10":9,"11":7,"12":2,"13":2,"14":1,"15":1,"16":1}},"engine":{"seeds":[10000448,10000449,10000450,10000451,10000452,10000453,10000454,10000455],"calls":83246,"mean_gas":131413.58,"peak_gas":208236,"out_of_gas":0,"ok_calls":83246,"sum_ok_gas":10939655207,"failures":{"oog":0,"revert":0,"other_halt":0,"tx_error":0,"bad_return":0},"limit":245000,"engine_hard_limit_per_call":250000,"peak_headroom_to_245000":36764,"afterInitialize_max_gas":137205,"baseline_vanilla_afterSwap":{"calls":81938,"mean_gas":22562.76,"peak_gas":22592},"run":"one block: amm_sim_rs.run_batch(BASE creation code, VanillaStrategy, 8 configs, 8); gas_stats_reset before, gas_stats after; configs bootstrap.smoke_engine.config_for(seed); compile by engine_eval._compile (pinned solc 0.8.24, engine SolidityCompiler); failure checks of engine_eval._one on every role and callback","seconds":5.41,"creation_sha256":"41a9c2c7efd4b829743ad71fce5cc2cfbaa7a870ace385b9be92c61a4644d0bb","creation_sha256_equals_published":true,"edges":[{"seed":10000448,"submission":649.566621,"vanilla_normalizer":374.11278},{"seed":10000449,"submission":553.795794,"vanilla_normalizer":354.051472},{"seed":10000450,"submission":478.143831,"vanilla_normalizer":268.169885},{"seed":10000451,"submission":676.534614,"vanilla_normalizer":438.373449},{"seed":10000452,"submission":522.315444,"vanilla_normalizer":361.849346},{"seed":10000453,"submission":503.87103,"vanilla_normalizer":299.477441},{"seed":10000454,"submission":377.828873,"vanilla_normalizer":277.103164},{"seed":10000455,"submission":370.547814,"vanilla_normalizer":253.637341}],"edges_note":"by-product of the gas run (BASE alone against the 30 bps VanillaStrategy); not a score claim, no pairing done here"},"offset":{"definition":"engine afterSwap gas (gas_stats: gas used by the transaction the engine sends per callback) minus the replica-gate gas of the afterSwap call itself (pyrevm gas_used - 21,000 - calldata cost), for the same callback","value":{"first_callback":46252,"later_callback":43652,"note":"per-class maximum; this is the offset used in headroom"},"first_callback":{"min":46168,"mean":46221.5,"max":46252},"later_callback":{"min":43568,"mean":43622.6,"max":43652},"all":{"min":43568,"mean":45268.5,"max":46252},"components":{"transaction_base":21000,"calldata":{"min":1168,"mean":1221.9,"max":1252,"rule":"4 per zero byte, 16 per nonzero byte of selector + 6 words"},"cold_storage_first_callback":24000,"cold_storage_later_callback":21400,"cold_storage_rule":"the gate keeps one pyrevm journal for the whole run, so every SLOAD and SSTORE of slots 0-4 costs 100 there; the engine sends each callback as its own transaction (transact_commit), so a first callback pays 5 cold SLOADs (5 x +2,000) and 5 changing SSTOREs (5 x +2,800), and a later callback pays 3 cold SLOADs (+6,000), 2 cold changing SSTOREs of the reserves (2 x +4,900), 2 changing SSTOREs (2 x +2,800) and one unchanged SSTORE of slot 0 (+0)","measured":{"first_callbacks":57507,"first_callback_surcharge":24000,"later_callbacks":33295,"later_callback_surcharge":21400}},"aggregate_engine_minus_replica":{"peak":48517,"mean":46302.1,"note":"engine lease seeds versus replica seeds 60000..60007: different simulations, so these two differences mix the offset with sampling"},"checks":["every one of the 90802 replica callbacks was replayed as its own transaction (fresh EVM, runtime code and the six pre-call slots placed in the database, nothing in the journal): same fees, 0 refunds, and gas above the gate measure by exactly 24,000 on all 57507 first callbacks and 21,400 on all 33295 later ones","afterInitialize: engine max_ok_gas 137205 equals the pyrevm transaction gas 137205 of the same call","VanillaStrategy afterSwap executes for 340 gas in pyrevm on any calldata; engine Baseline afterSwap mean 22562.76 and max 22592 give 21,000 + 1222.76 and 21,000 + 1252, against replica calldata mean 1221.9 and max 1252","engine mean 131413.58 on the lease seeds against 130380.0 for the replica callbacks replayed as transactions (different seeds); engine peak 208236 against 205935"]},"headroom":[{"path":"first|arb|neither|gap 1","n":28095,"max":91831,"offset":46252,"headroom":106917,"headroom_exact":106977,"stacked_max_bound":93615,"headroom_stacked":105133},{"path":"first|arb|neither|gap 2-6","n":2860,"max":112007,"offset":46240,"headroom":86753,"headroom_exact":86777,"stacked_max_bound":114910,"headroom_stacked":83850},{"path":"first|arb|neither|gap 7-12","n":37,"max":127815,"offset":46240,"headroom":70945,"headroom_exact":70969,"stacked_max_bound":140464,"headroom_stacked":58296},{"path":"first|not-arb|bound|gap 1","n":14467,"max":108495,"offset":46252,"headroom":90253,"headroom_exact":90277,"stacked_max_bound":111314,"headroom_stacked":87434},{"path":"first|not-arb|bound|gap 2-6","n":8969,"max":129275,"offset":46252,"headroom":69473,"headroom_exact":69521,"stacked_max_bound":132609,"headroom_stacked":66139},{"path":"first|not-arb|bound|gap 7-12","n":131,"max":152559,"offset":46252,"headroom":46189,"headroom_exact":46237,"stacked_max_bound":158163,"headroom_stacked":40585},{"path":"first|not-arb|bound|gap 13+","n":3,"max":155973,"offset":46216,"headroom":42811,"headroom_exact":42811,"stacked_max_bound":162422,"headroom_stacked":36362},{"path":"first|not-arb|pull|gap 1","n":1669,"max":112269,"offset":46240,"headroom":86491,"headroom_exact":86491,"stacked_max_bound":116936,"headroom_stacked":81824},{"path":"first|not-arb|pull|gap 2-6","n":1258,"max":132644,"offset":46240,"headroom":66116,"headroom_exact":66128,"stacked_max_bound":138231,"headroom_stacked":60529},{"path":"first|not-arb|pull|gap 7-12","n":16,"max":157548,"offset":46228,"headroom":41224,"headroom_exact":41236,"stacked_max_bound":163785,"headroom_stacked":34987},{"path":"first|not-arb|pull|gap 13+","n":2,"max":159719,"offset":46216,"headroom":39065,"headroom_exact":39065,"stacked_max_bound":168044,"headroom_stacked":30740},{"path":"later|not-arb|bound|gap 0","n":28770,"max":68690,"offset":43652,"headroom":132658,"headroom_exact":132706,"stacked_max_bound":68785,"headroom_stacked":132563},{"path":"later|not-arb|pull|gap 0","n":4525,"max":71823,"offset":43652,"headroom":129525,"headroom_exact":129561,"stacked_max_bound":74407,"headroom_stacked":126941}],"free_gas_reading":{"basis":"headroom = 245,000 - path max - path offset, maxima observed on the 8 replica seeds; headroom_stacked replaces the path max by a bound stacked from the largest value of every part seen in its class and 4259 gas per silent step","can_carry_20k":["first|arb|neither|gap 1","first|arb|neither|gap 2-6","first|arb|neither|gap 7-12","first|not-arb|bound|gap 1","first|not-arb|bound|gap 2-6","first|not-arb|bound|gap 7-12","first|not-arb|bound|gap 13+","first|not-arb|pull|gap 1","first|not-arb|pull|gap 2-6","first|not-arb|pull|gap 7-12","first|not-arb|pull|gap 13+","later|not-arb|bound|gap 0","later|not-arb|pull|gap 0"],"can_carry_40k":["first|arb|neither|gap 1","first|arb|neither|gap 2-6","first|arb|neither|gap 7-12","first|not-arb|bound|gap 1","first|not-arb|bound|gap 2-6","first|not-arb|bound|gap 7-12","first|not-arb|bound|gap 13+","first|not-arb|pull|gap 1","first|not-arb|pull|gap 2-6","first|not-arb|pull|gap 7-12","later|not-arb|bound|gap 0","later|not-arb|pull|gap 0"],"can_carry_80k":["first|arb|neither|gap 1","first|arb|neither|gap 2-6","first|not-arb|bound|gap 1","first|not-arb|pull|gap 1","later|not-arb|bound|gap 0","later|not-arb|pull|gap 0"],"can_carry_20k_stacked":["first|arb|neither|gap 1","first|arb|neither|gap 2-6","first|arb|neither|gap 7-12","first|not-arb|bound|gap 1","first|not-arb|bound|gap 2-6","first|not-arb|bound|gap 7-12","first|not-arb|bound|gap 13+","first|not-arb|pull|gap 1","first|not-arb|pull|gap 2-6","first|not-arb|pull|gap 7-12","first|not-arb|pull|gap 13+","later|not-arb|bound|gap 0","later|not-arb|pull|gap 0"],"can_carry_40k_stacked":["first|arb|neither|gap 1","first|arb|neither|gap 2-6","first|arb|neither|gap 7-12","first|not-arb|bound|gap 1","first|not-arb|bound|gap 2-6","first|not-arb|bound|gap 7-12","first|not-arb|pull|gap 1","first|not-arb|pull|gap 2-6","later|not-arb|bound|gap 0","later|not-arb|pull|gap 0"],"can_carry_80k_stacked":["first|arb|neither|gap 1","first|arb|neither|gap 2-6","first|not-arb|bound|gap 1","first|not-arb|pull|gap 1","later|not-arb|bound|gap 0","later|not-arb|pull|gap 0"],"callback_share":{"can_carry_20k":1.0,"can_carry_40k":0.99998,"can_carry_80k":0.88529,"can_carry_20k_stacked":1.0,"can_carry_40k_stacked":0.99977,"can_carry_80k_stacked":0.88529},"engine_observed":{"peak_gas":208236,"headroom":36764,"note":"the engine reports no per-call gas, so its peak cannot be assigned to a path; it is 2301 above the highest replica callback replayed as a transaction, and the published BASE engine run peaked at 207569"},"reading":["By the observed maxima every path can carry 20k; every path but first|not-arb|pull|gap 13+ can carry 40k, and with the stacked bound also not first|not-arb|bound|gap 13+ and first|not-arb|pull|gap 7-12 (the engine peak of this run leaves 36,764, so treat gap 13+ as under 40k); 80k fits later callbacks, first callbacks with gap 1 and arb-read first callbacks with gap 2-6, together 88.5% of callbacks.","Gas binds only on first callbacks after a long silence: the silent-step loop costs about 4170 gas per step (61 with none, up to 50794 seen at the cap of 12). Gaps of 7 or more steps are 189 of 90802 callbacks.","Later callbacks of a step (36.7% of callbacks) skip isArb and the belief update: at most 115439 engine gas seen, 129561 free.","First callbacks with gap 1 (44231 callbacks): at most 158509 engine gas seen, 86491 or more free; read as arbitrage they use the small table (lookup about 43,000 against 58,000).","Work added on every callback is limited by the long-gap paths: 39065 by the observed replica maxima, 36764 by the engine peak of this run, 30740 by stacked maxima. Work skipped when the gap exceeds 6, or paid for by a lower cap on the silent-step loop, has 66116 (observed) or 60529 (stacked).","Fixed costs any contract with this storage layout keeps on the engine: 21,000 base, about 1,220 calldata, 25,000-25,100 storage on a first callback (22,200 later). The lookup is the largest compute part except after long gaps, where the belief update passes it (lookup 41,328-61,979; qt struct and table copy about 7,900 of it, each surf 13,186-35,284).","Not exercised: guardFee writing slot 5 never fired (0 guard shifts). By the same opcode rules its first firing on the engine would add about 22,100 (cold SLOAD plus zero-to-nonzero SSTORE); not measured."]},"method":"Harness: bundle_zb64 of the BASE artifact over that of lookup-u1, Strategy.sol from code_zb64 (sha256 checked), prepare.py, pyrevm 0.3.7, py-solc-x 2.1.0, solc 0.8.24 (optimizer 200, viaIR, paris), installed by the kit setup_fast.sh at 45e7563d. Compiled runtime and creation sha256 equal the published ones. 1) Replica gate: the bundle Driver and Shadow (alpha 0.35) with recording added; per-seed n, peak transaction gas, rule_moves and bound_binds equal the published rows. Callback gas = pyrevm gas_used - 21,000 - calldata cost of the exact BASE bytecode, as the gate measures it. Path labels come from the contract: a probe variant (same source plus gasleft() checkpoints pushed into the two scratch words, and flags for first / arb / rival branch / tell hit returned beside the fees) is called in lockstep with identical calldata; its fees and final storage equal BASE on every call, its arb flag equals the shadow is_arb and its rival branch equals the gate rule_moves / bound_binds on every call. first = timestamp above the stored one; gap = timestamp minus stored timestamp (0 for later callbacks of a step). p99 is nearest-rank. 2) Parts: checkpoint differences of the probe variant on the same callback (it costs 471-775 more per call, mean 584, so a part is good to a few hundred gas); storage is counted at the opcode cost of the gate measure; other is the remainder against the BASE gas. isArb cross-checked by a stub. 3) Engine: one run of BASE alone against VanillaStrategy on the 8 lease seeds. Offset: each replica callback was also replayed as its own transaction, which is what the engine charges; see offset.checks.","ledger":{"lease":[10000448,10000449,10000450,10000451,10000452,10000453,10000454,10000455],"run":[10000448,10000449,10000450,10000451,10000452,10000453,10000454,10000455],"burnt":[],"status":"complete","blocks":1,"note":"each lease seed run exactly once, in one block of 8; nothing interrupted"},"not_done":["The engine exposes only calls, sum and max per callback, so engine gas is not split by path; the path table is the replica, with each callback also replayed as a transaction.","The parts come from a probe variant, not from the BASE bytecode; only isArb was cross-checked by a stub (18361 against 18453). Loop, pull and lookup were not stub-checked because stubbing them changes the state and the table cell.","A full opcode trace of the peak call (pyrevm tracing) did not finish inside the command limit and was dropped; its first lines only confirmed the SLOAD costs.","Long-gap paths are thin: 5 callbacks with gap 13+ and 184 with gap 7-12 in 8 seeds; their maxima are lower bounds, hence the stacked bound.","vectors.py and decoder_gate.py of the bundle were not rerun; gates P, Q, T, F, E and any scoring are outside this item. Nothing was submitted."]}