Skip to content

Commit 55557db

Browse files
committed
Simplify hardware verification slide, make ENS logo smaller
1 parent 57e27d7 commit 55557db

1 file changed

Lines changed: 33 additions & 26 deletions

File tree

src/app/slides/page.tsx

Lines changed: 33 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ type Slide = {
1010
bullets?: string[];
1111
footnote?: string;
1212
image?: string;
13+
imageClass?: string;
1314
code?: string;
1415
variant?: "title" | "demo" | "default";
1516
};
@@ -66,10 +67,9 @@ const slides: Slide[] = [
6667
title: "Step 1: Spec lookup",
6768
bullets: [
6869
"The contract address is matched against the veryclear.eth ENS registry",
69-
"Each entry maps a contract to a compiled spec (e.g. ERC20, UniswapV2)",
70-
"The registry is on-chain, verifiable by anyone",
7170
],
7271
image: "/slides/ens.png",
72+
imageClass: "mt-6 h-16",
7373
},
7474
{
7575
label: "How It Works",
@@ -120,11 +120,12 @@ const slides: Slide[] = [
120120
label: "How It Works",
121121
title: "Step 7: Hardware verification",
122122
bullets: [
123-
"The proof + verification key + intent text are sent to the Ledger Nano S+",
124-
"The Ledger displays the intent, user confirms with physical buttons",
125-
"On approve: 4-pairing Groth16 check on ARM Cortex-M35P secure element",
123+
"The proof, verification key and template are sent to the Ledger",
124+
"The Ledger verifies the template is the correct interpretation of the calldata",
125+
"It fills the holes with the actual values and displays the result for user confirmation",
126126
],
127-
footnote: "The browser generates, the hardware verifies. Zero trust required.",
127+
footnote:
128+
"The browser generates, the hardware verifies. Zero trust required.",
128129
},
129130

130131
// ── Closing ──
@@ -141,23 +142,29 @@ function highlightCode(line: string): React.ReactNode {
141142
if (line.trim() === "") return "\u00A0";
142143
// Simple Lean-like syntax highlighting
143144
return line
144-
.replace(
145-
/\b(intent|when|otherwise|emit|where)\b/g,
146-
'<kw>$1</kw>'
147-
)
148-
.replace(
149-
/\b(address|uint256|bool)\b/g,
150-
'<ty>$1</ty>'
151-
)
152-
.replace(
153-
/"([^"]*)"/g,
154-
'<str>"$1"</str>'
155-
)
145+
.replace(/\b(intent|when|otherwise|emit|where)\b/g, "<kw>$1</kw>")
146+
.replace(/\b(address|uint256|bool)\b/g, "<ty>$1</ty>")
147+
.replace(/"([^"]*)"/g, '<str>"$1"</str>')
156148
.split(/(<kw>.*?<\/kw>|<ty>.*?<\/ty>|<str>.*?<\/str>)/)
157149
.map((part, i) => {
158-
if (part.startsWith('<kw>')) return <span key={i} className="text-[#907aa9]">{part.slice(4, -5)}</span>;
159-
if (part.startsWith('<ty>')) return <span key={i} className="text-[#ea9d34]">{part.slice(4, -5)}</span>;
160-
if (part.startsWith('<str>')) return <span key={i} className="text-[#56949f]">{part.slice(5, -6)}</span>;
150+
if (part.startsWith("<kw>"))
151+
return (
152+
<span key={i} className="text-[#907aa9]">
153+
{part.slice(4, -5)}
154+
</span>
155+
);
156+
if (part.startsWith("<ty>"))
157+
return (
158+
<span key={i} className="text-[#ea9d34]">
159+
{part.slice(4, -5)}
160+
</span>
161+
);
162+
if (part.startsWith("<str>"))
163+
return (
164+
<span key={i} className="text-[#56949f]">
165+
{part.slice(5, -6)}
166+
</span>
167+
);
161168
return part;
162169
});
163170
}
@@ -190,15 +197,13 @@ function SlideView({ slide }: { slide: Slide }) {
190197
<img
191198
src={slide.image}
192199
alt=""
193-
className="mt-8 max-h-[40vh] rounded-lg"
200+
className={slide.imageClass ?? "mt-8 max-h-[40vh] rounded-lg"}
194201
/>
195202
)}
196203
{slide.code && (
197204
<pre className="mt-8 bg-[#faf4ed] rounded-lg px-6 py-5 text-[15px] leading-[1.7] font-mono max-w-2xl overflow-x-auto">
198205
{slide.code.split("\n").map((line, i) => (
199-
<div key={i}>
200-
{highlightCode(line)}
201-
</div>
206+
<div key={i}>{highlightCode(line)}</div>
202207
))}
203208
</pre>
204209
)}
@@ -261,7 +266,9 @@ export default function SlidesPage() {
261266
<div
262267
key={i}
263268
className={`h-1.5 w-1.5 rounded-full transition-opacity ${
264-
i === current ? "bg-foreground opacity-60" : "bg-foreground opacity-15"
269+
i === current
270+
? "bg-foreground opacity-60"
271+
: "bg-foreground opacity-15"
265272
}`}
266273
/>
267274
))}

0 commit comments

Comments
 (0)