@@ -284,11 +284,16 @@ <h5 class="mb-0"><i class="fas fa-info-circle me-2"></i>Overview</h5>
284284 {{ end }}
285285 {{ if gt (len .InputData) 0 }}
286286 < div class ="row p-2 mx-0 ">
287- < div class ="col-md-3 "> < span data-bs-toggle ="tooltip " data-bs-placement ="top " title ="Transaction input data "> Input Data:</ span > </ div >
287+ < div class ="col-md-3 "> < span data-bs-toggle ="tooltip " data-bs-placement ="top " title ="Transaction input data ({{ .CalldataZeroBytes }} zero bytes, {{ .CalldataNonZeroBytes }} non-zero bytes) "> Input Data:</ span > < span class =" badge bg-secondary ms-1 " > {{ formatNumber (len .InputData) }} bytes </ span > < small class =" text-muted " style =" font-size:0.75em; " > {{ .CalldataZeroBytes }}×0 / {{ .CalldataNonZeroBytes }}×≠0 </ small > </ div >
288288 < div class ="col-md-9 ">
289289 < div class ="d-flex justify-content-between align-items-center mb-2 ">
290290 {{ if eq .TargetCallType "deploy" }}
291291 < span class ="badge rounded-pill text-bg-warning "> Contract Creation</ span >
292+ {{ if gt (len .InputData) 49152 }}
293+ < span class ="badge rounded-pill text-bg-danger ms-1 " title ="Initcode ({{ formatNumber (len .InputData) }} bytes) exceeds Prague MAX_INIT_CODE_SIZE=49152. This deployment requires EIP-7954 (Amsterdam MAX_INIT_CODE_SIZE=131072). "> EIP-7954</ span >
294+ {{ else if gt (len .InputData) 24576 }}
295+ < span class ="badge rounded-pill text-bg-warning ms-1 " title ="Initcode ({{ formatNumber (len .InputData) }} bytes) may deploy code exceeding Prague MAX_CODE_SIZE=24576. EIP-7954 (Amsterdam) raises the limit to 65536. "> EIP-7954</ span >
296+ {{ end }}
292297 {{ else if eq .TargetCallType "precompile" }}
293298 < span class ="badge rounded-pill text-bg-info "> Precompile: {{ .TargetCallName }}</ span >
294299 {{ else if eq .TargetCallType "system" }}
@@ -332,6 +337,16 @@ <h5 class="mb-0"><i class="fas fa-info-circle me-2"></i>Overview</h5>
332337 < div id ="input-data-ascii " class ="border rounded p-2 text-monospace text-break " style ="max-height: 200px; overflow-y: auto; font-size: 0.85rem; background-color: var(--bs-tertiary-bg); display: none; white-space: pre-wrap; "> </ div >
333338 </ div >
334339 </ div >
340+ < div class ="row border-bottom p-2 mx-0 ">
341+ < div class ="col-md-3 text-muted " style ="font-size:0.85em; padding-top:0.2rem; "> < span data-bs-toggle ="tooltip " data-bs-placement ="top " title ="Minimum intrinsic gas required by this transaction's calldata under each fork's pricing rules. Does not include execution gas. "> Calldata gas:</ span > </ div >
342+ < div class ="col-md-9 d-flex flex-wrap align-items-center gap-1 " style ="font-size:0.85em; ">
343+ < span class ="badge text-bg-secondary " data-bs-toggle ="tooltip " data-bs-placement ="top " title ="Pre-Prague standard pricing: 4 gas per zero byte, 16 gas per non-zero byte
= 21,000 + 4×{{ .CalldataZeroBytes }} + 16×{{ .CalldataNonZeroBytes }} = {{ formatAddCommas .CalldataStandardGas }} gas "> pre-Prague {{ formatAddCommas .CalldataStandardGas }}</ span >
344+ < span class ="text-muted "> →</ span >
345+ < span class ="badge text-bg-info " data-bs-toggle ="tooltip " data-bs-placement ="top " title ="EIP-7623 floor (Prague / Electra+): tokens = 4×nonzero + zero = {{ .CalldataPragueTokens }} tokens
floor = 21,000 + {{ .CalldataPragueTokens }}×10 = {{ formatAddCommas .CalldataPragueFloor }} gas
Always ≥ standard; data-heavy txs pay proportionally more. "> EIP-7623 {{ formatAddCommas .CalldataPragueFloor }}</ span >
346+ < span class ="text-muted "> →</ span >
347+ < span class ="badge text-bg-warning text-dark " data-bs-toggle ="tooltip " data-bs-placement ="top " title ="EIP-7976 floor (Amsterdam+): flat 64 gas per byte (all bytes equal, zero or not)
= 21,000 + {{ len .InputData }}×64 = {{ formatAddCommas .CalldataAmsterdamFloor }} gas
Supersedes EIP-7623; especially raises cost for zero-heavy calldata. "> EIP-7976 {{ formatAddCommas .CalldataAmsterdamFloor }}</ span >
348+ </ div >
349+ </ div >
335350 {{ end }}
336351 </ div >
337352 </ div >
0 commit comments