glamsterdam-compat-lab 0.3.2 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (221) hide show
  1. package/CONTRIBUTING.md +2 -2
  2. package/README.md +16 -9
  3. package/ROADMAP.md +4 -1
  4. package/data/client-compat/clients.example.json +355 -2
  5. package/data/eips/glamsterdam.json +504 -25
  6. package/datasets/public-seed/README.md +8 -0
  7. package/datasets/public-seed/comparisons/bytecode-ens-registry-mainnet-runtime--default-vs-research.json +3 -3
  8. package/datasets/public-seed/comparisons/bytecode-erc4337-entrypoint-v06-mainnet-runtime--default-vs-research.json +167 -0
  9. package/datasets/public-seed/comparisons/bytecode-multicall3-mainnet-runtime--default-vs-research.json +3 -3
  10. package/datasets/public-seed/comparisons/bytecode-safe-proxy-factory-v130-mainnet-runtime--default-vs-research.json +169 -0
  11. package/datasets/public-seed/comparisons/bytecode-storage-heavy--default-vs-research.json +3 -3
  12. package/datasets/public-seed/comparisons/bytecode-uniswap-v2-factory-mainnet-runtime--default-vs-research.json +3 -3
  13. package/datasets/public-seed/comparisons/bytecode-usdc-proxy-mainnet-runtime--default-vs-research.json +3 -3
  14. package/datasets/public-seed/comparisons/bytecode-weth9-mainnet-runtime--default-vs-research.json +3 -3
  15. package/datasets/public-seed/comparisons/traces-besu-debug-structlogs--default-vs-research.json +3 -3
  16. package/datasets/public-seed/comparisons/traces-besu-mainnet-tracoor-debug-structlogs--default-vs-research.json +3 -3
  17. package/datasets/public-seed/comparisons/traces-call-tracer-tree--default-vs-research.json +3 -3
  18. package/datasets/public-seed/comparisons/traces-drpc-call-tracer-real--default-vs-research.json +3 -3
  19. package/datasets/public-seed/comparisons/traces-erigon-action-trace--default-vs-research.json +3 -3
  20. package/datasets/public-seed/comparisons/traces-foundry-json-trace--default-vs-research.json +3 -3
  21. package/datasets/public-seed/comparisons/traces-geth-json-rpc-structlogs--default-vs-research.json +3 -3
  22. package/datasets/public-seed/comparisons/traces-geth-mainnet-tracoor-debug-structlogs--default-vs-research.json +141 -0
  23. package/datasets/public-seed/comparisons/traces-hardhat-debug-trace--default-vs-research.json +3 -3
  24. package/datasets/public-seed/comparisons/traces-nethermind-debug-structlogs--default-vs-research.json +3 -3
  25. package/datasets/public-seed/comparisons/traces-nethermind-mainnet-tracoor-debug-structlogs--default-vs-research.json +3 -3
  26. package/datasets/public-seed/comparisons/traces-reth-mainnet-tracoor-debug-structlogs--default-vs-research.json +141 -0
  27. package/datasets/public-seed/comparisons/traces-storage-heavy-trace--default-vs-research.json +3 -3
  28. package/datasets/public-seed/findings.csv +44 -0
  29. package/datasets/public-seed/manifest.json +198 -4
  30. package/datasets/public-seed/readiness-clients.csv +20 -0
  31. package/datasets/public-seed/readiness-devnets.csv +9 -0
  32. package/datasets/public-seed/readiness-eips.csv +66 -0
  33. package/datasets/public-seed/readiness-sources.csv +33 -0
  34. package/datasets/public-seed/readiness.json +1437 -0
  35. package/datasets/public-seed/reports/bytecode-ens-registry-mainnet-runtime--default.json +2 -2
  36. package/datasets/public-seed/reports/bytecode-ens-registry-mainnet-runtime--research.json +2 -2
  37. package/datasets/public-seed/reports/bytecode-erc4337-entrypoint-v06-mainnet-runtime--default.json +170 -0
  38. package/datasets/public-seed/reports/bytecode-erc4337-entrypoint-v06-mainnet-runtime--research.json +170 -0
  39. package/datasets/public-seed/reports/bytecode-multicall3-mainnet-runtime--default.json +2 -2
  40. package/datasets/public-seed/reports/bytecode-multicall3-mainnet-runtime--research.json +2 -2
  41. package/datasets/public-seed/reports/bytecode-safe-proxy-factory-v130-mainnet-runtime--default.json +148 -0
  42. package/datasets/public-seed/reports/bytecode-safe-proxy-factory-v130-mainnet-runtime--research.json +171 -0
  43. package/datasets/public-seed/reports/bytecode-storage-heavy--default.json +2 -2
  44. package/datasets/public-seed/reports/bytecode-storage-heavy--research.json +2 -2
  45. package/datasets/public-seed/reports/bytecode-uniswap-v2-factory-mainnet-runtime--default.json +2 -2
  46. package/datasets/public-seed/reports/bytecode-uniswap-v2-factory-mainnet-runtime--research.json +2 -2
  47. package/datasets/public-seed/reports/bytecode-usdc-proxy-mainnet-runtime--default.json +2 -2
  48. package/datasets/public-seed/reports/bytecode-usdc-proxy-mainnet-runtime--research.json +2 -2
  49. package/datasets/public-seed/reports/bytecode-weth9-mainnet-runtime--default.json +2 -2
  50. package/datasets/public-seed/reports/bytecode-weth9-mainnet-runtime--research.json +2 -2
  51. package/datasets/public-seed/reports/indexers-balance-diff-indexer--default.json +2 -2
  52. package/datasets/public-seed/reports/indexers-explorer-replay-indexer--default.json +2 -2
  53. package/datasets/public-seed/reports/indexers-graph-network-subgraph-reduced--default.json +123 -0
  54. package/datasets/public-seed/reports/indexers-subgraph--default.json +2 -2
  55. package/datasets/public-seed/reports/traces-besu-debug-structlogs--default.json +2 -2
  56. package/datasets/public-seed/reports/traces-besu-debug-structlogs--research.json +2 -2
  57. package/datasets/public-seed/reports/traces-besu-mainnet-tracoor-debug-structlogs--default.json +2 -2
  58. package/datasets/public-seed/reports/traces-besu-mainnet-tracoor-debug-structlogs--research.json +2 -2
  59. package/datasets/public-seed/reports/traces-call-tracer-tree--default.json +2 -2
  60. package/datasets/public-seed/reports/traces-call-tracer-tree--research.json +2 -2
  61. package/datasets/public-seed/reports/traces-drpc-call-tracer-real--default.json +2 -2
  62. package/datasets/public-seed/reports/traces-drpc-call-tracer-real--research.json +2 -2
  63. package/datasets/public-seed/reports/traces-erigon-action-trace--default.json +2 -2
  64. package/datasets/public-seed/reports/traces-erigon-action-trace--research.json +2 -2
  65. package/datasets/public-seed/reports/traces-foundry-json-trace--default.json +2 -2
  66. package/datasets/public-seed/reports/traces-foundry-json-trace--research.json +2 -2
  67. package/datasets/public-seed/reports/traces-geth-json-rpc-structlogs--default.json +2 -2
  68. package/datasets/public-seed/reports/traces-geth-json-rpc-structlogs--research.json +2 -2
  69. package/datasets/public-seed/reports/traces-geth-mainnet-tracoor-debug-structlogs--default.json +103 -0
  70. package/datasets/public-seed/reports/traces-geth-mainnet-tracoor-debug-structlogs--research.json +131 -0
  71. package/datasets/public-seed/reports/traces-hardhat-debug-trace--default.json +2 -2
  72. package/datasets/public-seed/reports/traces-hardhat-debug-trace--research.json +2 -2
  73. package/datasets/public-seed/reports/traces-nethermind-debug-structlogs--default.json +2 -2
  74. package/datasets/public-seed/reports/traces-nethermind-debug-structlogs--research.json +2 -2
  75. package/datasets/public-seed/reports/traces-nethermind-mainnet-tracoor-debug-structlogs--default.json +2 -2
  76. package/datasets/public-seed/reports/traces-nethermind-mainnet-tracoor-debug-structlogs--research.json +2 -2
  77. package/datasets/public-seed/reports/traces-reth-mainnet-tracoor-debug-structlogs--default.json +103 -0
  78. package/datasets/public-seed/reports/traces-reth-mainnet-tracoor-debug-structlogs--research.json +131 -0
  79. package/datasets/public-seed/reports/traces-storage-heavy-trace--default.json +2 -2
  80. package/datasets/public-seed/reports/traces-storage-heavy-trace--research.json +2 -2
  81. package/datasets/public-seed/reports/validator-glamsterdam-devnet-operator-public--default.json +92 -0
  82. package/datasets/public-seed/reports/validator-operator-config--default.json +4 -4
  83. package/datasets/public-seed/reports/validator-operator-config-builder-gap--default.json +2 -2
  84. package/datasets/public-seed/reports/validator-operator-config-complete--default.json +2 -2
  85. package/datasets/public-seed/reports.csv +10 -0
  86. package/datasets/public-seed/summary.csv +37 -31
  87. package/datasets/public-seed/summary.json +57 -33
  88. package/dist/cli.js +6 -1
  89. package/dist/cli.js.map +1 -1
  90. package/dist/fixtures/provenance.d.ts +3 -0
  91. package/dist/fixtures/provenance.js +1 -0
  92. package/dist/fixtures/provenance.js.map +1 -1
  93. package/dist/index.d.ts +4 -2
  94. package/dist/index.js +2 -1
  95. package/dist/index.js.map +1 -1
  96. package/dist/registry/clientMatrix.d.ts +334 -0
  97. package/dist/registry/clientMatrix.js +218 -0
  98. package/dist/registry/clientMatrix.js.map +1 -0
  99. package/dist/registry/schemas.d.ts +34 -1
  100. package/dist/registry/schemas.js +17 -1
  101. package/dist/registry/schemas.js.map +1 -1
  102. package/dist/reports/reportTypes.d.ts +1 -1
  103. package/dist/reports/reportTypes.js +1 -1
  104. package/dist/scanners/validatorScanner.d.ts +1 -28
  105. package/dist/scanners/validatorScanner.js +2 -37
  106. package/dist/scanners/validatorScanner.js.map +1 -1
  107. package/docs/client-compat.md +123 -0
  108. package/docs/dataset.md +205 -0
  109. package/docs/fixtures.md +10 -4
  110. package/docs/release.md +11 -29
  111. package/docs/releases/v0.3.4.md +15 -0
  112. package/examples/baseline-comparison.md +1 -1
  113. package/examples/public-seed-analysis.md +192 -0
  114. package/fixtures/bytecode/erc4337-entrypoint-v06-mainnet-runtime.hex +1 -0
  115. package/fixtures/bytecode/safe-proxy-factory-v130-mainnet-runtime.hex +1 -0
  116. package/fixtures/indexers/graph-network-subgraph-reduced.yaml +66 -0
  117. package/fixtures/provenance.json +267 -1
  118. package/fixtures/traces/geth-mainnet-tracoor-debug-structlogs.json +2285 -0
  119. package/fixtures/traces/reth-mainnet-tracoor-debug-structlogs.json +2285 -0
  120. package/fixtures/validator/glamsterdam-devnet-operator-public.yaml +30 -0
  121. package/package.json +6 -1
  122. package/site/public-seed/comparisons/bytecode-ens-registry-mainnet-runtime--default-vs-research.html +496 -0
  123. package/site/public-seed/comparisons/bytecode-erc4337-entrypoint-v06-mainnet-runtime--default-vs-research.html +510 -0
  124. package/site/public-seed/comparisons/bytecode-multicall3-mainnet-runtime--default-vs-research.html +510 -0
  125. package/site/public-seed/comparisons/bytecode-safe-proxy-factory-v130-mainnet-runtime--default-vs-research.html +524 -0
  126. package/site/public-seed/comparisons/bytecode-storage-heavy--default-vs-research.html +510 -0
  127. package/site/public-seed/comparisons/bytecode-uniswap-v2-factory-mainnet-runtime--default-vs-research.html +510 -0
  128. package/site/public-seed/comparisons/bytecode-usdc-proxy-mainnet-runtime--default-vs-research.html +517 -0
  129. package/site/public-seed/comparisons/bytecode-weth9-mainnet-runtime--default-vs-research.html +496 -0
  130. package/site/public-seed/comparisons/traces-besu-debug-structlogs--default-vs-research.html +475 -0
  131. package/site/public-seed/comparisons/traces-besu-mainnet-tracoor-debug-structlogs--default-vs-research.html +496 -0
  132. package/site/public-seed/comparisons/traces-call-tracer-tree--default-vs-research.html +489 -0
  133. package/site/public-seed/comparisons/traces-drpc-call-tracer-real--default-vs-research.html +489 -0
  134. package/site/public-seed/comparisons/traces-erigon-action-trace--default-vs-research.html +489 -0
  135. package/site/public-seed/comparisons/traces-foundry-json-trace--default-vs-research.html +503 -0
  136. package/site/public-seed/comparisons/traces-geth-json-rpc-structlogs--default-vs-research.html +482 -0
  137. package/site/public-seed/comparisons/traces-geth-mainnet-tracoor-debug-structlogs--default-vs-research.html +510 -0
  138. package/site/public-seed/comparisons/traces-hardhat-debug-trace--default-vs-research.html +482 -0
  139. package/site/public-seed/comparisons/traces-nethermind-debug-structlogs--default-vs-research.html +501 -0
  140. package/site/public-seed/comparisons/traces-nethermind-mainnet-tracoor-debug-structlogs--default-vs-research.html +496 -0
  141. package/site/public-seed/comparisons/traces-reth-mainnet-tracoor-debug-structlogs--default-vs-research.html +510 -0
  142. package/site/public-seed/comparisons/traces-storage-heavy-trace--default-vs-research.html +503 -0
  143. package/site/public-seed/findings/bytecode.calldata-copy-exposure.html +683 -0
  144. package/site/public-seed/findings/bytecode.contract-creation-opcodes.html +551 -0
  145. package/site/public-seed/findings/bytecode.contract-size-near-current-limit.html +463 -0
  146. package/site/public-seed/findings/bytecode.log-opcodes-present.html +771 -0
  147. package/site/public-seed/findings/bytecode.manual-review-required.html +771 -0
  148. package/site/public-seed/findings/bytecode.state-account-opcode-exposure.html +727 -0
  149. package/site/public-seed/findings/bytecode.state-account-opcode-presence.html +441 -0
  150. package/site/public-seed/findings/bytecode.storage-heavy-pattern.html +683 -0
  151. package/site/public-seed/findings/indexer.balance-diff-native-transfer-assumption.html +463 -0
  152. package/site/public-seed/findings/indexer.event-only-assumption.html +463 -0
  153. package/site/public-seed/findings/indexer.missing-bal-readiness-metadata.html +485 -0
  154. package/site/public-seed/findings/indexer.missing-fork-compatibility-metadata.html +463 -0
  155. package/site/public-seed/findings/indexer.missing-replay-plan.html +463 -0
  156. package/site/public-seed/findings/indexer.native-eth-transfer-review-missing.html +463 -0
  157. package/site/public-seed/findings/trace.calldata-heavy-execution.html +815 -0
  158. package/site/public-seed/findings/trace.contract-creation-executed.html +639 -0
  159. package/site/public-seed/findings/trace.logs-calls-visible.html +991 -0
  160. package/site/public-seed/findings/trace.partial-evidence.html +771 -0
  161. package/site/public-seed/findings/trace.state-heavy-execution-medium.html +617 -0
  162. package/site/public-seed/findings/validator.builder-enabled-without-endpoint.html +463 -0
  163. package/site/public-seed/findings/validator.consensus-client-status-partial.html +441 -0
  164. package/site/public-seed/findings/validator.execution-client-status-partial.html +441 -0
  165. package/site/public-seed/findings/validator.missing-monitoring-endpoints.html +463 -0
  166. package/site/public-seed/findings/validator.missing-testnet-participation.html +463 -0
  167. package/site/public-seed/findings/validator.missing-validator-client-version.html +441 -0
  168. package/site/public-seed/findings/validator.unknown-consensus-client-compatibility.html +441 -0
  169. package/site/public-seed/findings/validator.unknown-execution-client-compatibility.html +441 -0
  170. package/site/public-seed/index.html +2560 -0
  171. package/site/public-seed/readiness.html +1591 -0
  172. package/site/public-seed/reports/bytecode-ens-registry-mainnet-runtime--default.html +548 -0
  173. package/site/public-seed/reports/bytecode-ens-registry-mainnet-runtime--research.html +548 -0
  174. package/site/public-seed/reports/bytecode-erc4337-entrypoint-v06-mainnet-runtime--default.html +595 -0
  175. package/site/public-seed/reports/bytecode-erc4337-entrypoint-v06-mainnet-runtime--research.html +595 -0
  176. package/site/public-seed/reports/bytecode-multicall3-mainnet-runtime--default.html +517 -0
  177. package/site/public-seed/reports/bytecode-multicall3-mainnet-runtime--research.html +544 -0
  178. package/site/public-seed/reports/bytecode-safe-proxy-factory-v130-mainnet-runtime--default.html +570 -0
  179. package/site/public-seed/reports/bytecode-safe-proxy-factory-v130-mainnet-runtime--research.html +595 -0
  180. package/site/public-seed/reports/bytecode-storage-heavy--default.html +595 -0
  181. package/site/public-seed/reports/bytecode-storage-heavy--research.html +595 -0
  182. package/site/public-seed/reports/bytecode-uniswap-v2-factory-mainnet-runtime--default.html +596 -0
  183. package/site/public-seed/reports/bytecode-uniswap-v2-factory-mainnet-runtime--research.html +596 -0
  184. package/site/public-seed/reports/bytecode-usdc-proxy-mainnet-runtime--default.html +547 -0
  185. package/site/public-seed/reports/bytecode-usdc-proxy-mainnet-runtime--research.html +572 -0
  186. package/site/public-seed/reports/bytecode-weth9-mainnet-runtime--default.html +549 -0
  187. package/site/public-seed/reports/bytecode-weth9-mainnet-runtime--research.html +549 -0
  188. package/site/public-seed/reports/indexers-balance-diff-indexer--default.html +481 -0
  189. package/site/public-seed/reports/indexers-explorer-replay-indexer--default.html +460 -0
  190. package/site/public-seed/reports/indexers-graph-network-subgraph-reduced--default.html +549 -0
  191. package/site/public-seed/reports/indexers-subgraph--default.html +548 -0
  192. package/site/public-seed/reports/traces-besu-debug-structlogs--default.html +469 -0
  193. package/site/public-seed/reports/traces-besu-debug-structlogs--research.html +469 -0
  194. package/site/public-seed/reports/traces-besu-mainnet-tracoor-debug-structlogs--default.html +549 -0
  195. package/site/public-seed/reports/traces-besu-mainnet-tracoor-debug-structlogs--research.html +549 -0
  196. package/site/public-seed/reports/traces-call-tracer-tree--default.html +518 -0
  197. package/site/public-seed/reports/traces-call-tracer-tree--research.html +518 -0
  198. package/site/public-seed/reports/traces-drpc-call-tracer-real--default.html +520 -0
  199. package/site/public-seed/reports/traces-drpc-call-tracer-real--research.html +520 -0
  200. package/site/public-seed/reports/traces-erigon-action-trace--default.html +518 -0
  201. package/site/public-seed/reports/traces-erigon-action-trace--research.html +518 -0
  202. package/site/public-seed/reports/traces-foundry-json-trace--default.html +493 -0
  203. package/site/public-seed/reports/traces-foundry-json-trace--research.html +521 -0
  204. package/site/public-seed/reports/traces-geth-json-rpc-structlogs--default.html +493 -0
  205. package/site/public-seed/reports/traces-geth-json-rpc-structlogs--research.html +493 -0
  206. package/site/public-seed/reports/traces-geth-mainnet-tracoor-debug-structlogs--default.html +521 -0
  207. package/site/public-seed/reports/traces-geth-mainnet-tracoor-debug-structlogs--research.html +549 -0
  208. package/site/public-seed/reports/traces-hardhat-debug-trace--default.html +493 -0
  209. package/site/public-seed/reports/traces-hardhat-debug-trace--research.html +493 -0
  210. package/site/public-seed/reports/traces-nethermind-debug-structlogs--default.html +517 -0
  211. package/site/public-seed/reports/traces-nethermind-debug-structlogs--research.html +517 -0
  212. package/site/public-seed/reports/traces-nethermind-mainnet-tracoor-debug-structlogs--default.html +549 -0
  213. package/site/public-seed/reports/traces-nethermind-mainnet-tracoor-debug-structlogs--research.html +549 -0
  214. package/site/public-seed/reports/traces-reth-mainnet-tracoor-debug-structlogs--default.html +521 -0
  215. package/site/public-seed/reports/traces-reth-mainnet-tracoor-debug-structlogs--research.html +549 -0
  216. package/site/public-seed/reports/traces-storage-heavy-trace--default.html +570 -0
  217. package/site/public-seed/reports/traces-storage-heavy-trace--research.html +570 -0
  218. package/site/public-seed/reports/validator-glamsterdam-devnet-operator-public--default.html +513 -0
  219. package/site/public-seed/reports/validator-operator-config--default.html +584 -0
  220. package/site/public-seed/reports/validator-operator-config-builder-gap--default.html +509 -0
  221. package/site/public-seed/reports/validator-operator-config-complete--default.html +441 -0
@@ -0,0 +1,441 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <title>Report: fixtures/validator/operator-config-complete.yaml</title>
7
+ <style>
8
+
9
+ :root {
10
+ color-scheme: light;
11
+ --bg: #f7f5ef;
12
+ --surface: #ffffff;
13
+ --surface-muted: #f0eee7;
14
+ --border: #d8d2c8;
15
+ --text: #242620;
16
+ --muted: #64665f;
17
+ --strong: #11130f;
18
+ --accent: #236f5d;
19
+ --blue: #345995;
20
+ --amber: #a86617;
21
+ --red: #9d3e3e;
22
+ --unknown: #6b6470;
23
+ --shadow: 0 1px 2px rgba(31, 35, 28, 0.08);
24
+ font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
25
+ }
26
+
27
+ * {
28
+ box-sizing: border-box;
29
+ }
30
+
31
+ body {
32
+ margin: 0;
33
+ background: var(--bg);
34
+ color: var(--text);
35
+ font-size: 15px;
36
+ line-height: 1.45;
37
+ }
38
+
39
+ a {
40
+ color: var(--blue);
41
+ text-decoration-thickness: 1px;
42
+ text-underline-offset: 3px;
43
+ }
44
+
45
+ a:hover {
46
+ color: var(--accent);
47
+ }
48
+
49
+ .shell {
50
+ width: min(1180px, calc(100% - 32px));
51
+ margin: 0 auto;
52
+ padding: 28px 0 40px;
53
+ }
54
+
55
+ header {
56
+ display: grid;
57
+ grid-template-columns: minmax(0, 1fr) auto;
58
+ gap: 18px;
59
+ align-items: end;
60
+ padding-bottom: 18px;
61
+ border-bottom: 1px solid var(--border);
62
+ }
63
+
64
+ h1,
65
+ h2,
66
+ h3,
67
+ p {
68
+ margin: 0;
69
+ }
70
+
71
+ h1 {
72
+ color: var(--strong);
73
+ font-size: 25px;
74
+ font-weight: 720;
75
+ letter-spacing: 0;
76
+ overflow-wrap: anywhere;
77
+ }
78
+
79
+ h2 {
80
+ color: var(--strong);
81
+ font-size: 18px;
82
+ font-weight: 680;
83
+ letter-spacing: 0;
84
+ }
85
+
86
+ h3 {
87
+ color: var(--strong);
88
+ font-size: 15px;
89
+ font-weight: 680;
90
+ letter-spacing: 0;
91
+ }
92
+
93
+ section {
94
+ padding: 22px 0;
95
+ border-bottom: 1px solid var(--border);
96
+ }
97
+
98
+ .subtle,
99
+ .meta {
100
+ color: var(--muted);
101
+ }
102
+
103
+ .meta {
104
+ display: grid;
105
+ gap: 4px;
106
+ font-size: 13px;
107
+ text-align: right;
108
+ }
109
+
110
+ .nav-row,
111
+ .link-row,
112
+ .cell-actions {
113
+ display: flex;
114
+ flex-wrap: wrap;
115
+ gap: 8px;
116
+ align-items: center;
117
+ }
118
+
119
+ .nav-row {
120
+ margin-bottom: 8px;
121
+ }
122
+
123
+ .link-row {
124
+ margin-top: 12px;
125
+ }
126
+
127
+ .nav-row a,
128
+ .link-row a {
129
+ display: inline-flex;
130
+ align-items: center;
131
+ min-height: 30px;
132
+ padding: 5px 9px;
133
+ border: 1px solid var(--border);
134
+ border-radius: 999px;
135
+ background: var(--surface);
136
+ color: var(--text);
137
+ font-size: 13px;
138
+ text-decoration: none;
139
+ white-space: nowrap;
140
+ }
141
+
142
+ .stats {
143
+ display: grid;
144
+ grid-template-columns: repeat(4, minmax(140px, 1fr));
145
+ gap: 10px;
146
+ margin-top: 14px;
147
+ }
148
+
149
+ .stat,
150
+ .panel,
151
+ .finding,
152
+ .table-wrap {
153
+ background: var(--surface);
154
+ border: 1px solid var(--border);
155
+ border-radius: 6px;
156
+ box-shadow: var(--shadow);
157
+ }
158
+
159
+ .stat {
160
+ min-height: 78px;
161
+ padding: 14px;
162
+ }
163
+
164
+ .stat-value {
165
+ display: block;
166
+ color: var(--strong);
167
+ font-size: 22px;
168
+ font-weight: 760;
169
+ line-height: 1.2;
170
+ overflow-wrap: anywhere;
171
+ }
172
+
173
+ .stat-label {
174
+ display: block;
175
+ margin-top: 6px;
176
+ color: var(--muted);
177
+ font-size: 13px;
178
+ }
179
+
180
+ .detail-grid {
181
+ display: grid;
182
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
183
+ gap: 12px;
184
+ margin-top: 12px;
185
+ }
186
+
187
+ .panel {
188
+ padding: 14px;
189
+ }
190
+
191
+ .kv {
192
+ display: grid;
193
+ grid-template-columns: 112px minmax(0, 1fr);
194
+ gap: 8px;
195
+ margin-top: 10px;
196
+ font-size: 13px;
197
+ }
198
+
199
+ .kv dt {
200
+ color: var(--muted);
201
+ font-weight: 680;
202
+ }
203
+
204
+ .kv dd {
205
+ margin: 0;
206
+ overflow-wrap: anywhere;
207
+ }
208
+
209
+ .finding {
210
+ margin-top: 12px;
211
+ padding: 14px;
212
+ }
213
+
214
+ .finding-head {
215
+ display: flex;
216
+ flex-wrap: wrap;
217
+ gap: 8px;
218
+ align-items: center;
219
+ justify-content: space-between;
220
+ margin-bottom: 10px;
221
+ }
222
+
223
+ .finding-title {
224
+ display: grid;
225
+ gap: 4px;
226
+ }
227
+
228
+ .path,
229
+ code,
230
+ pre {
231
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
232
+ font-size: 12px;
233
+ }
234
+
235
+ .path {
236
+ overflow-wrap: anywhere;
237
+ }
238
+
239
+ pre {
240
+ max-height: 260px;
241
+ margin: 10px 0 0;
242
+ padding: 12px;
243
+ overflow: auto;
244
+ background: var(--surface-muted);
245
+ border: 1px solid var(--border);
246
+ border-radius: 6px;
247
+ }
248
+
249
+ .badge {
250
+ display: inline-flex;
251
+ align-items: center;
252
+ min-height: 24px;
253
+ padding: 2px 8px;
254
+ border-radius: 999px;
255
+ font-size: 12px;
256
+ font-weight: 720;
257
+ white-space: nowrap;
258
+ }
259
+
260
+ .risk-low {
261
+ background: #e1f0df;
262
+ color: #236126;
263
+ }
264
+
265
+ .risk-medium {
266
+ background: #fae8c9;
267
+ color: var(--amber);
268
+ }
269
+
270
+ .risk-high {
271
+ background: #f3d6d6;
272
+ color: var(--red);
273
+ }
274
+
275
+ .risk-unknown {
276
+ background: #e5e0e8;
277
+ color: var(--unknown);
278
+ }
279
+
280
+ .table-wrap {
281
+ margin-top: 12px;
282
+ overflow-x: auto;
283
+ }
284
+
285
+ table {
286
+ width: 100%;
287
+ min-width: 760px;
288
+ border-collapse: collapse;
289
+ }
290
+
291
+ th,
292
+ td {
293
+ padding: 10px 12px;
294
+ border-bottom: 1px solid var(--border);
295
+ vertical-align: top;
296
+ text-align: left;
297
+ }
298
+
299
+ th {
300
+ background: var(--surface-muted);
301
+ color: var(--muted);
302
+ font-size: 12px;
303
+ font-weight: 720;
304
+ text-transform: uppercase;
305
+ letter-spacing: 0;
306
+ }
307
+
308
+ tbody tr:last-child td {
309
+ border-bottom: 0;
310
+ }
311
+
312
+ ul {
313
+ margin: 10px 0 0;
314
+ padding-left: 18px;
315
+ color: var(--muted);
316
+ }
317
+
318
+ li {
319
+ margin: 5px 0;
320
+ }
321
+
322
+ .empty-state {
323
+ margin-top: 12px;
324
+ padding: 14px;
325
+ background: var(--surface);
326
+ border: 1px solid var(--border);
327
+ border-radius: 6px;
328
+ color: var(--muted);
329
+ }
330
+
331
+ @media (max-width: 820px) {
332
+ .shell {
333
+ width: min(100% - 20px, 1180px);
334
+ padding-top: 18px;
335
+ }
336
+
337
+ header {
338
+ grid-template-columns: 1fr;
339
+ align-items: start;
340
+ }
341
+
342
+ .meta {
343
+ text-align: left;
344
+ }
345
+
346
+ .stats {
347
+ grid-template-columns: repeat(2, minmax(130px, 1fr));
348
+ }
349
+ }
350
+
351
+ @media (max-width: 520px) {
352
+ h1 {
353
+ font-size: 22px;
354
+ }
355
+
356
+ .stats {
357
+ grid-template-columns: 1fr;
358
+ }
359
+
360
+ .kv {
361
+ grid-template-columns: 1fr;
362
+ }
363
+ }
364
+
365
+ </style>
366
+ </head>
367
+ <body>
368
+ <main class="shell">
369
+ <header>
370
+ <div>
371
+ <div class="nav-row">
372
+ <a href="../index.html">Index</a>
373
+ </div>
374
+ <h1>Report: fixtures/validator/operator-config-complete.yaml</h1>
375
+ <p class="subtle">validator / default / low</p>
376
+ </div>
377
+ <div class="meta" aria-label="Dataset metadata">
378
+ <span>Dataset 2026-05-13</span>
379
+ <span>Tool 0.3.4</span>
380
+ <span>Site 2026-05-13</span>
381
+ </div>
382
+ </header>
383
+
384
+ <section aria-labelledby="summary-heading">
385
+ <h2 id="summary-heading">Summary</h2>
386
+ <div class="stats">
387
+ <div class="stat"><span class="stat-value">low</span><span class="stat-label">Risk</span></div>
388
+ <div class="stat"><span class="stat-value">0</span><span class="stat-label">Findings</span></div>
389
+ <div class="stat"><span class="stat-value">0</span><span class="stat-label">Medium</span></div>
390
+ <div class="stat"><span class="stat-value">0</span><span class="stat-label">Unknown</span></div>
391
+ </div>
392
+ <div class="link-row"><a href="../index.html?risk=low&amp;kind=validator&amp;profile=default&amp;q=fixtures%2Fvalidator%2Foperator-config-complete.yaml">filtered index</a>
393
+ <a href="../../../datasets/public-seed/reports/validator-operator-config-complete--default.json">report json</a>
394
+ <a href="../../../fixtures/validator/operator-config-complete.yaml">source fixture</a>
395
+ <a href="../../../fixtures/provenance.json">provenance</a></div>
396
+ </section>
397
+
398
+ <section aria-labelledby="source-heading">
399
+ <h2 id="source-heading">Source</h2>
400
+ <div class="detail-grid">
401
+ <div class="panel">
402
+ <h3>Fixture</h3>
403
+ <dl class="kv">
404
+ <dt>Path</dt><dd>fixtures/validator/operator-config-complete.yaml</dd>
405
+ <dt>Kind</dt><dd>validator</dd>
406
+ <dt>Profile</dt><dd>default</dd>
407
+ <dt>Report</dt><dd>reports/validator-operator-config-complete--default.json</dd>
408
+ </dl>
409
+ </div>
410
+ <div class="panel">
411
+ <h3>Provenance</h3>
412
+ <dl class="kv">
413
+ <dt>Source type</dt><dd>synthetic</dd>
414
+ <dt>Source name</dt><dd>Hand-authored complete validator operator fixture</dd>
415
+ <dt>Description</dt><dd>Synthetic validator/operator config with complete placeholder client, builder, monitoring, testnet, and compatibility metadata.</dd>
416
+ </dl>
417
+ </div>
418
+ </div>
419
+ </section>
420
+
421
+ <section aria-labelledby="findings-heading">
422
+ <h2 id="findings-heading">Findings</h2>
423
+ <div class="empty-state visible">No findings in this report.</div>
424
+ </section>
425
+
426
+ <section aria-labelledby="assumptions">
427
+ <h2 id="assumptions">Assumptions</h2>
428
+ <ul><li>Validator/operator readiness was checked from a local JSON/YAML config only.</li>
429
+ <li>Client compatibility was compared against data/client-compat/clients.example.json. Unknown entries are reported without guessing.</li>
430
+ <li>The loaded registry is dated 2026-05-13. Glamsterdam scope and gas parameters may change.</li></ul>
431
+ </section>
432
+ <section aria-labelledby="limitations">
433
+ <h2 id="limitations">Limitations</h2>
434
+ <ul><li>This scanner does not verify live node state, command-line flags, environment variables, firewall rules, or remote service health.</li>
435
+ <li>Client compatibility must come from a maintained matrix with explicit source links.</li>
436
+ <li>A clean report does not replace devnet/testnet participation or operational drills.</li></ul>
437
+ </section>
438
+
439
+ </main>
440
+ </body>
441
+ </html>