veriq-client 0.1.1 → 0.1.2
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.
- package/README.md +33 -3
- package/dist/bin/veriq.js +100 -7
- package/dist/index.cjs +4 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +814 -48
- package/dist/index.d.ts +814 -48
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/react/index.cjs +1 -1
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.js +1 -1
- package/dist/react/index.js.map +1 -1
- package/package.json +80 -78
- package/wasm/veriq_verifier.wasm +0 -0
package/dist/react/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/react/provider.tsx","../../src/react/hooks.ts","../../src/react/components.tsx"],"names":["VeriqContext","createContext","VeriqProvider","client","children","jsx","__name","useVeriqClient","useContext","caches","IDLE","entryFor","key","map","e","toVeriqError","err","VeriqError","run","fetcher","set","snap","l","data","useVeriqQuery","opts","active","entry","subscribe","useCallback","cb","useSyncExternalStore","refresh","useEffect","onFocus","timer","useVerifiedBalance","address","useVerifiedStorage","slot","c","useVeriqHealth","useReceipt","id","cx","STATUS_LABEL","ReceiptBadge","status","error","label","size","className","rest","jsxs","CopyHash","value","head","tail","copied","setCopied","useState","t","shortHash","defaultValue","receipt","formatEth","Row","download","json","url","ReceiptCard","attempts","formatValue","subtitle","badgeExtra","raw","r","_k","v","formatNumber","rootSourceLabel","m","w","a","i","VerifiedValue","format","policy","refreshInterval","balance","storage","q","open","setOpen","wrapRef","useRef","popId","useId","onKey","onDown","shown","o","EngineStatus","health","controlled","hasClient","h","online","dev"],"mappings":"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","file":"index.js","sourcesContent":["import { createContext, useContext, type ReactNode } from 'react'\r\nimport type { VeriqClient } from 'veriq-client'\r\n\r\nconst VeriqContext = createContext<VeriqClient | null>(null)\r\n\r\n/**\r\n * Makes a Veriq client available to the hooks and components below it.\r\n * @example\r\n * const veriq = createVeriq()\r\n * <VeriqProvider client={veriq}><App /></VeriqProvider>\r\n */\r\nexport function VeriqProvider({ client, children }: { client: VeriqClient; children?: ReactNode }) {\r\n return <VeriqContext.Provider value={client}>{children}</VeriqContext.Provider>\r\n}\r\n\r\n/**\r\n * The client from the nearest VeriqProvider (null if there is none).\r\n * @example const veriq = useVeriqClient()\r\n */\r\nexport function useVeriqClient(): VeriqClient | null {\r\n return useContext(VeriqContext)\r\n}\r\n","import { useCallback, useEffect, useSyncExternalStore } from 'react'\r\nimport { VeriqError, type EngineHealth, type Hex, type Policy, type TrustReceipt, type VeriqClient, type VerifiedResult } from 'veriq-client'\r\nimport { useVeriqClient } from './provider'\r\n\r\nexport interface QueryState<T> {\r\n data?: T\r\n error?: VeriqError\r\n isLoading: boolean\r\n /** Re-fetch now (deduplicated with any request already in flight). */\r\n refresh: () => Promise<void>\r\n}\r\n\r\nexport interface HookOptions {\r\n /** Poll every N ms. Default: no polling. */\r\n refreshInterval?: number\r\n /** Set false to skip fetching. Default true. */\r\n enabled?: boolean\r\n}\r\n\r\ninterface Snapshot {\r\n data?: unknown\r\n error?: VeriqError\r\n isLoading: boolean\r\n}\r\n\r\ninterface Entry {\r\n snap: Snapshot\r\n inflight?: Promise<void>\r\n listeners: Set<() => void>\r\n}\r\n\r\n// Tiny cache: one Map per client, keyed by method + params. No external data library.\r\nconst caches = new WeakMap<VeriqClient, Map<string, Entry>>()\r\nconst IDLE: Snapshot = { isLoading: false }\r\n\r\nfunction entryFor(client: VeriqClient, key: string): Entry {\r\n let map = caches.get(client)\r\n if (!map) caches.set(client, (map = new Map()))\r\n let e = map.get(key)\r\n if (!e) map.set(key, (e = { snap: { isLoading: true }, listeners: new Set() }))\r\n return e\r\n}\r\n\r\nfunction toVeriqError(err: unknown): VeriqError {\r\n return err instanceof VeriqError ? err : new VeriqError(0, err instanceof Error ? err.message : String(err), { cause: err })\r\n}\r\n\r\nfunction run(e: Entry, fetcher: () => Promise<unknown>): Promise<void> {\r\n if (e.inflight) return e.inflight\r\n const set = (snap: Snapshot) => {\r\n e.snap = snap\r\n e.listeners.forEach((l) => l())\r\n }\r\n if (e.snap.data === undefined && !e.snap.isLoading) set({ ...e.snap, isLoading: true })\r\n e.inflight = fetcher()\r\n .then((data) => set({ data, isLoading: false }))\r\n .catch((err: unknown) => set({ ...(e.snap.data !== undefined ? { data: e.snap.data } : {}), error: toVeriqError(err), isLoading: false }))\r\n .finally(() => {\r\n e.inflight = undefined\r\n })\r\n return e.inflight\r\n}\r\n\r\nfunction useVeriqQuery<T>(key: string | null, fetcher: (c: VeriqClient) => Promise<T>, opts: HookOptions = {}): QueryState<T> {\r\n const client = useVeriqClient()\r\n const active = client !== null && key !== null && opts.enabled !== false\r\n const entry = active ? entryFor(client, key) : null\r\n\r\n const subscribe = useCallback((cb: () => void) => {\r\n if (!entry) return () => {}\r\n entry.listeners.add(cb)\r\n return () => entry.listeners.delete(cb)\r\n }, [entry])\r\n const snap = useSyncExternalStore(subscribe, () => entry?.snap ?? IDLE, () => entry?.snap ?? IDLE)\r\n\r\n const refresh = useCallback(() => (entry && client ? run(entry, () => fetcher(client)) : Promise.resolve()), [entry, client, fetcher])\r\n\r\n useEffect(() => {\r\n if (!entry) return\r\n if (entry.snap.data === undefined && !entry.snap.error) void refresh()\r\n // Revalidate when the tab regains focus.\r\n const onFocus = () => {\r\n if (typeof document === 'undefined' || document.visibilityState !== 'hidden') void refresh()\r\n }\r\n window.addEventListener('focus', onFocus)\r\n document.addEventListener('visibilitychange', onFocus)\r\n const timer = opts.refreshInterval ? setInterval(() => void refresh(), opts.refreshInterval) : undefined\r\n return () => {\r\n window.removeEventListener('focus', onFocus)\r\n document.removeEventListener('visibilitychange', onFocus)\r\n if (timer) clearInterval(timer)\r\n }\r\n }, [entry, refresh, opts.refreshInterval])\r\n\r\n return {\r\n ...(snap.data !== undefined ? { data: snap.data as T } : {}),\r\n ...(snap.error ? { error: snap.error } : {}),\r\n isLoading: active ? snap.isLoading : false,\r\n refresh,\r\n }\r\n}\r\n\r\nexport interface ReadHookOptions extends HookOptions {\r\n policy?: Policy\r\n}\r\n\r\n/**\r\n * Proven balance for an address, cached and shared across components.\r\n * @example const { data, error, isLoading } = useVerifiedBalance('0x…')\r\n */\r\nexport function useVerifiedBalance(address: string | null | undefined, opts: ReadHookOptions = {}): QueryState<VerifiedResult<bigint>> {\r\n const key = address ? `readBalance:${address.toLowerCase()}:${JSON.stringify(opts.policy ?? null)}` : null\r\n const fetcher = useCallback((c: VeriqClient) => c.readBalance({ address: address ?? '', ...(opts.policy ? { policy: opts.policy } : {}) }), [address, opts.policy])\r\n return useVeriqQuery(key, fetcher, opts)\r\n}\r\n\r\n/**\r\n * Proven storage slot value.\r\n * @example const { data } = useVerifiedStorage(contract, '0x0')\r\n */\r\nexport function useVerifiedStorage(address: string | null | undefined, slot: string | null | undefined, opts: ReadHookOptions = {}): QueryState<VerifiedResult<Hex>> {\r\n const key = address && slot ? `readStorage:${address.toLowerCase()}:${slot}:${JSON.stringify(opts.policy ?? null)}` : null\r\n const fetcher = useCallback(\r\n (c: VeriqClient) => c.readStorage({ address: address ?? '', slot: slot ?? '', ...(opts.policy ? { policy: opts.policy } : {}) }),\r\n [address, slot, opts.policy],\r\n )\r\n return useVeriqQuery(key, fetcher, opts)\r\n}\r\n\r\n/**\r\n * Engine health, polled every 5 s by default.\r\n * @example const { data, error } = useVeriqHealth()\r\n */\r\nexport function useVeriqHealth(opts: HookOptions = {}): QueryState<EngineHealth> {\r\n const fetcher = useCallback((c: VeriqClient) => c.health(), [])\r\n return useVeriqQuery('health', fetcher, { refreshInterval: 5000, ...opts })\r\n}\r\n\r\n/**\r\n * A stored Trust Receipt by request id.\r\n * @example const { data: receipt } = useReceipt(id)\r\n */\r\nexport function useReceipt(id: string | null | undefined, opts: HookOptions = {}): QueryState<TrustReceipt> {\r\n const fetcher = useCallback((c: VeriqClient) => c.getReceipt(id ?? ''), [id])\r\n return useVeriqQuery(id ? `receipt:${id}` : null, fetcher, opts)\r\n}\r\n","import { useEffect, useId, useRef, useState, type HTMLAttributes, type ReactNode } from 'react'\r\nimport {\r\n formatEth,\r\n formatNumber,\r\n rootSourceLabel,\r\n shortHash,\r\n type Attempt,\r\n type EngineHealth,\r\n type Policy,\r\n type TrustReceipt,\r\n type VerificationStatus,\r\n type VeriqError,\r\n} from 'veriq-client'\r\nimport { useVeriqClient } from './provider'\r\nimport { useVerifiedBalance, useVerifiedStorage, useVeriqHealth } from './hooks'\r\n\r\nconst cx = (...c: (string | false | null | undefined)[]) => c.filter(Boolean).join(' ')\r\n\r\ntype DivProps = Omit<HTMLAttributes<HTMLElement>, 'children'>\r\n\r\n// ---------------------------------------------------------------- ReceiptBadge\r\n\r\nexport type BadgeSize = 'sm' | 'md' | 'lg'\r\n\r\nexport interface ReceiptBadgeProps extends DivProps {\r\n status?: VerificationStatus\r\n /** Shows the error's code name in the error colour. Takes precedence over `status`. */\r\n error?: VeriqError | null\r\n /** Override the label text. */\r\n label?: ReactNode\r\n size?: BadgeSize\r\n}\r\n\r\nconst STATUS_LABEL: Record<VerificationStatus, string> = { verified: 'Verified', unverified: 'Unverified', unsupported: 'Unsupported' }\r\n\r\n/**\r\n * Status pill with a small dot: verified (green), unverified (amber), unsupported (lavender), error (rose).\r\n * @example <ReceiptBadge status={receipt.verification.status} />\r\n * @example <ReceiptBadge error={err} />\r\n */\r\nexport function ReceiptBadge({ status = 'unsupported', error, label, size = 'sm', className, ...rest }: ReceiptBadgeProps) {\r\n const kind = error ? 'error' : status\r\n return (\r\n <span {...rest} className={cx('vq-badge', `vq-badge--${kind}`, `vq-badge--${size}`, className)}>\r\n <span className=\"vq-badge__dot\" aria-hidden=\"true\" />\r\n {label ?? (error ? error.codeName : STATUS_LABEL[status])}\r\n </span>\r\n )\r\n}\r\n\r\n// ---------------------------------------------------------------- Hash (copy on click)\r\n\r\n/**\r\n * Monospace, middle-truncated hash that copies on click and shows a \"Copied\" tick.\r\n * @example <CopyHash value={receipt.block.stateRoot} />\r\n */\r\nexport function CopyHash({ value, head = 6, tail = 6, className }: { value: string; head?: number; tail?: number; className?: string }) {\r\n const [copied, setCopied] = useState(false)\r\n useEffect(() => {\r\n if (!copied) return\r\n const t = setTimeout(() => setCopied(false), 1200)\r\n return () => clearTimeout(t)\r\n }, [copied])\r\n return (\r\n <button\r\n type=\"button\"\r\n className={cx('vq-hash', copied && 'vq-hash--copied', className)}\r\n title={value}\r\n aria-label={`Copy ${value}`}\r\n onClick={(e) => {\r\n e.stopPropagation()\r\n void navigator.clipboard?.writeText(value).then(() => setCopied(true))\r\n }}\r\n >\r\n <span>{shortHash(value, head, tail)}</span>\r\n <span className=\"vq-hash__tick\" aria-live=\"polite\">{copied ? '✓ Copied' : ''}</span>\r\n </button>\r\n )\r\n}\r\n\r\n// ---------------------------------------------------------------- ReceiptCard\r\n\r\nexport interface ReceiptCardProps extends DivProps {\r\n receipt?: TrustReceipt | null\r\n /** Proven value: wei for balances, hex or bigint for storage. */\r\n value?: bigint | string | null\r\n attempts?: Attempt[]\r\n /** Show a failed read instead of a receipt. */\r\n error?: VeriqError | null\r\n /** Custom value formatter. Default: ETH for balances, raw for storage. */\r\n formatValue?: (value: bigint | string, receipt: TrustReceipt | null) => ReactNode\r\n /** Extra line under the value (method, address, time…). */\r\n subtitle?: ReactNode\r\n /** Extra elements next to the status badge. */\r\n badgeExtra?: ReactNode\r\n /** What \"Raw JSON\" and the download contain. Default: the receipt. */\r\n raw?: unknown\r\n}\r\n\r\nfunction defaultValue(value: bigint | string, receipt: TrustReceipt | null): ReactNode {\r\n if (receipt && /storage/i.test(receipt.identity.method)) {\r\n const v = typeof value === 'bigint' ? value : BigInt(value)\r\n return v.toString()\r\n }\r\n return formatEth(value)\r\n}\r\n\r\nfunction Row({ label, children }: { label: string; children: ReactNode }) {\r\n return (\r\n <div className=\"vq-row\">\r\n <dt>{label}</dt>\r\n <dd>{children}</dd>\r\n </div>\r\n )\r\n}\r\n\r\nfunction download(json: string) {\r\n const url = URL.createObjectURL(new Blob([json], { type: 'application/json' }))\r\n const a = document.createElement('a')\r\n a.href = url\r\n a.download = 'receipt.json'\r\n a.click()\r\n URL.revokeObjectURL(url)\r\n}\r\n\r\n/**\r\n * A full Trust Receipt in the dashboard's card style.\r\n * @example <ReceiptCard receipt={result.receipt} value={result.value} attempts={result.attempts} />\r\n */\r\nexport function ReceiptCard({ receipt, value, attempts = [], error, formatValue = defaultValue, subtitle, badgeExtra, raw, className, ...rest }: ReceiptCardProps) {\r\n const r = receipt ?? null\r\n const json = JSON.stringify(raw ?? r ?? (error ? { code: error.code, name: error.codeName, message: error.message } : null), (_k, v: unknown) => (typeof v === 'bigint' ? v.toString() : v), 2)\r\n return (\r\n <section {...rest} className={cx('vq-card', className)}>\r\n <div className=\"vq-card__head\">\r\n <div className=\"vq-card__badges\">\r\n <ReceiptBadge size=\"lg\" {...(error ? { error } : { status: r?.verification.status ?? 'unsupported' })} />\r\n {badgeExtra}\r\n </div>\r\n {error ? (\r\n <div className=\"vq-card__error\">\r\n <div className=\"vq-mono vq-text-err\">\r\n {error.codeName} · {error.code}\r\n </div>\r\n <p className=\"vq-card__meaning\">{error.meaning}</p>\r\n <p className=\"vq-muted\">{error.message}</p>\r\n <p className=\"vq-hint\">→ {error.hint}</p>\r\n </div>\r\n ) : (\r\n value != null && <div className=\"vq-card__value\">{formatValue(value, r)}</div>\r\n )}\r\n {subtitle && <div className=\"vq-card__subtitle\">{subtitle}</div>}\r\n </div>\r\n\r\n {r && (\r\n <dl className=\"vq-card__section\">\r\n <Row label=\"Block\">\r\n <span className=\"vq-mono\">\r\n #{formatNumber(r.block.number)} {r.block.finalized ? <span className=\"vq-text-ok\">finalized</span> : <span className=\"vq-text-warn\">not finalized</span>}\r\n </span>\r\n <CopyHash value={r.block.hash} />\r\n </Row>\r\n <Row label=\"State root\">\r\n <CopyHash value={r.block.stateRoot} />\r\n </Row>\r\n <Row label=\"Root source\">\r\n <span className={cx('vq-chip', r.verification.rootSource === 'untrusted-rpc' ? 'vq-chip--warn' : 'vq-chip--ok')}>{rootSourceLabel(r.verification.rootSource)}</span>\r\n </Row>\r\n <Row label=\"Verifier\">\r\n <span className=\"vq-mono\">{r.verification.verifierLocation}</span>\r\n </Row>\r\n <Row label=\"Mechanisms\">\r\n <span className=\"vq-chips\">\r\n {r.verification.mechanisms.length === 0 ? <span className=\"vq-muted\">none</span> : r.verification.mechanisms.map((m) => <span key={m} className=\"vq-chip vq-chip--lav\">{m}</span>)}\r\n </span>\r\n </Row>\r\n <Row label=\"Transport\">\r\n <span className=\"vq-mono\">{r.privacy.transport}</span>\r\n </Row>\r\n <Row label=\"Comparison\">\r\n <span className=\"vq-mono\">{r.routing.comparison}</span>\r\n </Row>\r\n {r.warnings.length > 0 && (\r\n <Row label=\"Warnings\">\r\n <ul className=\"vq-list\">\r\n {r.warnings.map((w) => (\r\n <li key={w.code} className=\"vq-text-warn\">\r\n <span className=\"vq-mono\">{w.code}</span> — {w.message}\r\n </li>\r\n ))}\r\n </ul>\r\n </Row>\r\n )}\r\n </dl>\r\n )}\r\n\r\n <div className=\"vq-card__section\">\r\n <h4 className=\"vq-card__h\">Attempts</h4>\r\n {attempts.length === 0 ? (\r\n <p className=\"vq-muted\">{r ? `${r.routing.providersTried} provider(s) tried${r.routing.providerLabel ? `, answered by ${r.routing.providerLabel}` : ''}.` : 'No provider was contacted.'}</p>\r\n ) : (\r\n <ol className=\"vq-attempts\">\r\n {attempts.map((a, i) => (\r\n <li key={i} className={cx('vq-attempt', a.outcome === 'ok' ? 'vq-attempt--ok' : 'vq-attempt--rejected')}>\r\n <span className=\"vq-attempt__dot\" aria-hidden=\"true\" />\r\n <div className=\"vq-attempt__body\">\r\n <div className=\"vq-attempt__line\">\r\n <span className=\"vq-attempt__provider\">{a.provider}</span>\r\n <span className=\"vq-mono vq-attempt__outcome\">{a.outcome}</span>\r\n <span className=\"vq-mono vq-attempt__ms\">{Math.round(a.elapsedMs)} ms</span>\r\n </div>\r\n {a.reason && <p className=\"vq-attempt__reason\">{a.reason}</p>}\r\n </div>\r\n </li>\r\n ))}\r\n </ol>\r\n )}\r\n </div>\r\n\r\n {r && (\r\n <div className=\"vq-card__section\">\r\n <h4 className=\"vq-card__h\">Bindings</h4>\r\n <dl>\r\n <Row label=\"requestBinding\">\r\n <CopyHash value={r.identity.requestBinding} />\r\n </Row>\r\n <Row label=\"resultBinding\">\r\n <CopyHash value={r.identity.resultBinding} />\r\n </Row>\r\n <Row label=\"requestId\">\r\n <CopyHash value={r.identity.requestId} head={8} />\r\n </Row>\r\n </dl>\r\n </div>\r\n )}\r\n\r\n <details className=\"vq-raw\">\r\n <summary>Raw JSON</summary>\r\n <pre>{json}</pre>\r\n </details>\r\n <button type=\"button\" className=\"vq-pill\" onClick={() => download(json)}>\r\n <span>Download receipt.json</span>\r\n <span className=\"vq-pill__circle\" aria-hidden=\"true\">\r\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\r\n <path d=\"M12 4v12M6 10l6 6 6-6M5 20h14\" />\r\n </svg>\r\n </span>\r\n </button>\r\n </section>\r\n )\r\n}\r\n\r\n// ---------------------------------------------------------------- VerifiedValue\r\n\r\nexport interface VerifiedValueProps extends DivProps {\r\n address: string\r\n /** Read a storage slot instead of the balance. */\r\n slot?: string\r\n /** \"eth\" (default) for balances, \"raw\" for the number, or your own formatter. */\r\n format?: 'eth' | 'raw' | ((value: bigint | string) => ReactNode)\r\n policy?: Policy\r\n refreshInterval?: number\r\n}\r\n\r\n/**\r\n * A proven value in the heading style with its status badge. Click it for the full receipt.\r\n * @example <VerifiedValue address=\"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045\" />\r\n */\r\nexport function VerifiedValue({ address, slot, format = 'eth', policy, refreshInterval, className, ...rest }: VerifiedValueProps) {\r\n const opts = { ...(policy ? { policy } : {}), ...(refreshInterval ? { refreshInterval } : {}) }\r\n const balance = useVerifiedBalance(slot ? null : address, opts)\r\n const storage = useVerifiedStorage(slot ? address : null, slot ?? null, opts)\r\n const q = slot ? storage : balance\r\n const [open, setOpen] = useState(false)\r\n const wrapRef = useRef<HTMLSpanElement>(null)\r\n const popId = useId()\r\n\r\n useEffect(() => {\r\n if (!open) return\r\n const onKey = (e: KeyboardEvent) => e.key === 'Escape' && setOpen(false)\r\n const onDown = (e: MouseEvent) => wrapRef.current && !wrapRef.current.contains(e.target as Node) && setOpen(false)\r\n document.addEventListener('keydown', onKey)\r\n document.addEventListener('mousedown', onDown)\r\n return () => {\r\n document.removeEventListener('keydown', onKey)\r\n document.removeEventListener('mousedown', onDown)\r\n }\r\n }, [open])\r\n\r\n if (q.isLoading && !q.data) {\r\n return <span {...rest} className={cx('vq-value', className)} aria-busy=\"true\"><span className=\"vq-skeleton vq-skeleton--value\" /><span className=\"vq-skeleton vq-skeleton--badge\" /></span>\r\n }\r\n if (q.error && !q.data) {\r\n return (\r\n <span {...rest} role=\"alert\" className={cx('vq-value vq-value--error', className)}>\r\n <ReceiptBadge error={q.error} />\r\n <span className=\"vq-value__hint\">\r\n <strong>{q.error.name}</strong> {q.error.hint}\r\n </span>\r\n </span>\r\n )\r\n }\r\n if (!q.data) return null\r\n const v = q.data.value\r\n const shown = typeof format === 'function' ? format(v) : format === 'raw' || slot ? BigInt(v).toString() : formatEth(v)\r\n return (\r\n <span {...rest} ref={wrapRef} className={cx('vq-value vq-fade', className)}>\r\n <button type=\"button\" className=\"vq-value__button\" aria-expanded={open} aria-controls={popId} onClick={() => setOpen((o) => !o)}>\r\n <span className=\"vq-value__num\">{shown}</span>\r\n <ReceiptBadge status={q.data.receipt.verification.status} />\r\n </button>\r\n {open && (\r\n <span id={popId} role=\"dialog\" aria-label=\"Trust receipt\" className=\"vq-popover vq-fade\">\r\n <ReceiptCard receipt={q.data.receipt} value={v} attempts={q.data.attempts} />\r\n </span>\r\n )}\r\n </span>\r\n )\r\n}\r\n\r\n// ---------------------------------------------------------------- EngineStatus\r\n\r\nexport interface EngineStatusProps extends DivProps {\r\n /** Controlled mode: pass health yourself (null = offline). Omit to fetch with useVeriqHealth. */\r\n health?: EngineHealth | null\r\n /** Shown when online and the engine doesn't report `bind`. Default 127.0.0.1:8547. */\r\n address?: string\r\n refreshInterval?: number\r\n}\r\n\r\n/**\r\n * \"● Engine online · 127.0.0.1:8547\" / grey \"● Engine offline\", plus an amber DEV MODE pill for untrusted roots.\r\n * @example <EngineStatus />\r\n */\r\nexport function EngineStatus({ health, address = '127.0.0.1:8547', refreshInterval, className, ...rest }: EngineStatusProps) {\r\n const controlled = health !== undefined\r\n const hasClient = useVeriqClient() !== null\r\n const q = useVeriqHealth({ enabled: !controlled && hasClient, ...(refreshInterval ? { refreshInterval } : {}) })\r\n const h = controlled ? health : (q.data ?? null)\r\n const online = h !== null && h !== undefined && (controlled || !q.error)\r\n const dev = online && (h.devMode || h.rootSource === 'untrusted-rpc')\r\n return (\r\n <span {...rest} className={cx('vq-status-group', className)}>\r\n <span className={cx('vq-status', online ? 'vq-status--online' : 'vq-status--offline')} role=\"status\">\r\n <span className=\"vq-status__dot\" aria-hidden=\"true\" />\r\n <span className=\"vq-status__label\">{online ? `Engine online · ${h.bind ?? address}` : !controlled && q.isLoading ? 'Checking engine…' : 'Engine offline'}</span>\r\n </span>\r\n {dev && <span className=\"vq-status vq-status--dev\">DEV MODE — unverified</span>}\r\n </span>\r\n )\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/react/provider.tsx","../../src/react/hooks.ts","../../src/react/components.tsx"],"names":["VeriqContext","createContext","VeriqProvider","client","children","jsx","__name","useVeriqClient","useContext","caches","IDLE","entryFor","key","map","e","toVeriqError","err","VeriqError","run","fetcher","set","snap","l","data","useVeriqQuery","opts","active","entry","subscribe","useCallback","cb","useSyncExternalStore","refresh","useEffect","onFocus","timer","useVerifiedBalance","address","useVerifiedStorage","slot","c","useVeriqHealth","useReceipt","id","cx","STATUS_LABEL","ReceiptBadge","status","error","label","size","className","rest","jsxs","CopyHash","value","head","tail","copied","setCopied","useState","t","shortHash","defaultValue","receipt","formatEth","Row","download","json","url","a","ReceiptCard","attempts","formatValue","subtitle","badgeExtra","raw","r","_k","v","formatNumber","rootSourceLabel","m","w","i","VerifiedValue","format","policy","refreshInterval","balance","storage","q","open","setOpen","wrapRef","useRef","popId","useId","onKey","onDown","shown","o","EngineStatus","health","controlled","hasClient","h","online","dev"],"mappings":"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","file":"index.js","sourcesContent":["import { createContext, useContext, type ReactNode } from 'react'\r\nimport type { VeriqClient } from 'veriq-client'\r\n\r\nconst VeriqContext = createContext<VeriqClient | null>(null)\r\n\r\n/**\r\n * Makes a Veriq client available to the hooks and components below it.\r\n * @example\r\n * const veriq = createVeriq()\r\n * <VeriqProvider client={veriq}><App /></VeriqProvider>\r\n */\r\nexport function VeriqProvider({ client, children }: { client: VeriqClient; children?: ReactNode }) {\r\n return <VeriqContext.Provider value={client}>{children}</VeriqContext.Provider>\r\n}\r\n\r\n/**\r\n * The client from the nearest VeriqProvider (null if there is none).\r\n * @example const veriq = useVeriqClient()\r\n */\r\nexport function useVeriqClient(): VeriqClient | null {\r\n return useContext(VeriqContext)\r\n}\r\n","import { useCallback, useEffect, useSyncExternalStore } from 'react'\r\nimport { VeriqError, type EngineHealth, type Hex, type Policy, type TrustReceipt, type VeriqClient, type VerifiedResult } from 'veriq-client'\r\nimport { useVeriqClient } from './provider'\r\n\r\nexport interface QueryState<T> {\r\n data?: T\r\n error?: VeriqError\r\n isLoading: boolean\r\n /** Re-fetch now (deduplicated with any request already in flight). */\r\n refresh: () => Promise<void>\r\n}\r\n\r\nexport interface HookOptions {\r\n /** Poll every N ms. Default: no polling. */\r\n refreshInterval?: number\r\n /** Set false to skip fetching. Default true. */\r\n enabled?: boolean\r\n}\r\n\r\ninterface Snapshot {\r\n data?: unknown\r\n error?: VeriqError\r\n isLoading: boolean\r\n}\r\n\r\ninterface Entry {\r\n snap: Snapshot\r\n inflight?: Promise<void>\r\n listeners: Set<() => void>\r\n}\r\n\r\n// Tiny cache: one Map per client, keyed by method + params. No external data library.\r\nconst caches = new WeakMap<VeriqClient, Map<string, Entry>>()\r\nconst IDLE: Snapshot = { isLoading: false }\r\n\r\nfunction entryFor(client: VeriqClient, key: string): Entry {\r\n let map = caches.get(client)\r\n if (!map) caches.set(client, (map = new Map()))\r\n let e = map.get(key)\r\n if (!e) map.set(key, (e = { snap: { isLoading: true }, listeners: new Set() }))\r\n return e\r\n}\r\n\r\nfunction toVeriqError(err: unknown): VeriqError {\r\n return err instanceof VeriqError ? err : new VeriqError(0, err instanceof Error ? err.message : String(err), { cause: err })\r\n}\r\n\r\nfunction run(e: Entry, fetcher: () => Promise<unknown>): Promise<void> {\r\n if (e.inflight) return e.inflight\r\n const set = (snap: Snapshot) => {\r\n e.snap = snap\r\n e.listeners.forEach((l) => l())\r\n }\r\n if (e.snap.data === undefined && !e.snap.isLoading) set({ ...e.snap, isLoading: true })\r\n e.inflight = fetcher()\r\n .then((data) => set({ data, isLoading: false }))\r\n .catch((err: unknown) => set({ ...(e.snap.data !== undefined ? { data: e.snap.data } : {}), error: toVeriqError(err), isLoading: false }))\r\n .finally(() => {\r\n e.inflight = undefined\r\n })\r\n return e.inflight\r\n}\r\n\r\nfunction useVeriqQuery<T>(key: string | null, fetcher: (c: VeriqClient) => Promise<T>, opts: HookOptions = {}): QueryState<T> {\r\n const client = useVeriqClient()\r\n const active = client !== null && key !== null && opts.enabled !== false\r\n const entry = active ? entryFor(client, key) : null\r\n\r\n const subscribe = useCallback((cb: () => void) => {\r\n if (!entry) return () => {}\r\n entry.listeners.add(cb)\r\n return () => entry.listeners.delete(cb)\r\n }, [entry])\r\n const snap = useSyncExternalStore(subscribe, () => entry?.snap ?? IDLE, () => entry?.snap ?? IDLE)\r\n\r\n const refresh = useCallback(() => (entry && client ? run(entry, () => fetcher(client)) : Promise.resolve()), [entry, client, fetcher])\r\n\r\n useEffect(() => {\r\n if (!entry) return\r\n if (entry.snap.data === undefined && !entry.snap.error) void refresh()\r\n // Revalidate when the tab regains focus.\r\n const onFocus = () => {\r\n if (typeof document === 'undefined' || document.visibilityState !== 'hidden') void refresh()\r\n }\r\n window.addEventListener('focus', onFocus)\r\n document.addEventListener('visibilitychange', onFocus)\r\n const timer = opts.refreshInterval ? setInterval(() => void refresh(), opts.refreshInterval) : undefined\r\n return () => {\r\n window.removeEventListener('focus', onFocus)\r\n document.removeEventListener('visibilitychange', onFocus)\r\n if (timer) clearInterval(timer)\r\n }\r\n }, [entry, refresh, opts.refreshInterval])\r\n\r\n return {\r\n ...(snap.data !== undefined ? { data: snap.data as T } : {}),\r\n ...(snap.error ? { error: snap.error } : {}),\r\n isLoading: active ? snap.isLoading : false,\r\n refresh,\r\n }\r\n}\r\n\r\nexport interface ReadHookOptions extends HookOptions {\r\n policy?: Policy\r\n}\r\n\r\n/**\r\n * Proven balance for an address, cached and shared across components.\r\n * @example const { data, error, isLoading } = useVerifiedBalance('0x…')\r\n */\r\nexport function useVerifiedBalance(address: string | null | undefined, opts: ReadHookOptions = {}): QueryState<VerifiedResult<bigint>> {\r\n const key = address ? `readBalance:${address.toLowerCase()}:${JSON.stringify(opts.policy ?? null)}` : null\r\n const fetcher = useCallback((c: VeriqClient) => c.readBalance({ address: address ?? '', ...(opts.policy ? { policy: opts.policy } : {}) }), [address, opts.policy])\r\n return useVeriqQuery(key, fetcher, opts)\r\n}\r\n\r\n/**\r\n * Proven storage slot value.\r\n * @example const { data } = useVerifiedStorage(contract, '0x0')\r\n */\r\nexport function useVerifiedStorage(address: string | null | undefined, slot: string | null | undefined, opts: ReadHookOptions = {}): QueryState<VerifiedResult<Hex>> {\r\n const key = address && slot ? `readStorage:${address.toLowerCase()}:${slot}:${JSON.stringify(opts.policy ?? null)}` : null\r\n const fetcher = useCallback(\r\n (c: VeriqClient) => c.readStorage({ address: address ?? '', slot: slot ?? '', ...(opts.policy ? { policy: opts.policy } : {}) }),\r\n [address, slot, opts.policy],\r\n )\r\n return useVeriqQuery(key, fetcher, opts)\r\n}\r\n\r\n/**\r\n * Engine health, polled every 5 s by default.\r\n * @example const { data, error } = useVeriqHealth()\r\n */\r\nexport function useVeriqHealth(opts: HookOptions = {}): QueryState<EngineHealth> {\r\n const fetcher = useCallback((c: VeriqClient) => c.health(), [])\r\n return useVeriqQuery('health', fetcher, { refreshInterval: 5000, ...opts })\r\n}\r\n\r\n/**\r\n * A stored Trust Receipt by request id.\r\n * @example const { data: receipt } = useReceipt(id)\r\n */\r\nexport function useReceipt(id: string | null | undefined, opts: HookOptions = {}): QueryState<TrustReceipt> {\r\n const fetcher = useCallback((c: VeriqClient) => c.getReceipt(id ?? ''), [id])\r\n return useVeriqQuery(id ? `receipt:${id}` : null, fetcher, opts)\r\n}\r\n","import { useEffect, useId, useRef, useState, type HTMLAttributes, type ReactNode } from 'react'\r\nimport {\r\n formatEth,\r\n formatNumber,\r\n rootSourceLabel,\r\n shortHash,\r\n type Attempt,\r\n type EngineHealth,\r\n type Policy,\r\n type TrustReceipt,\r\n type VerificationStatus,\r\n type VeriqError,\r\n} from 'veriq-client'\r\nimport { useVeriqClient } from './provider'\r\nimport { useVerifiedBalance, useVerifiedStorage, useVeriqHealth } from './hooks'\r\n\r\nconst cx = (...c: (string | false | null | undefined)[]) => c.filter(Boolean).join(' ')\r\n\r\ntype DivProps = Omit<HTMLAttributes<HTMLElement>, 'children'>\r\n\r\n// ---------------------------------------------------------------- ReceiptBadge\r\n\r\nexport type BadgeSize = 'sm' | 'md' | 'lg'\r\n\r\nexport interface ReceiptBadgeProps extends DivProps {\r\n status?: VerificationStatus\r\n /** Shows the error's code name in the error colour. Takes precedence over `status`. */\r\n error?: VeriqError | null\r\n /** Override the label text. */\r\n label?: ReactNode\r\n size?: BadgeSize\r\n}\r\n\r\nconst STATUS_LABEL: Record<VerificationStatus, string> = { verified: 'Verified', unverified: 'Unverified', unsupported: 'Unsupported' }\r\n\r\n/**\r\n * Status pill with a small dot: verified (green), unverified (amber), unsupported (lavender), error (rose).\r\n * @example <ReceiptBadge status={receipt.verification.status} />\r\n * @example <ReceiptBadge error={err} />\r\n */\r\nexport function ReceiptBadge({ status = 'unsupported', error, label, size = 'sm', className, ...rest }: ReceiptBadgeProps) {\r\n const kind = error ? 'error' : status\r\n return (\r\n <span {...rest} className={cx('vq-badge', `vq-badge--${kind}`, `vq-badge--${size}`, className)}>\r\n <span className=\"vq-badge__dot\" aria-hidden=\"true\" />\r\n {label ?? (error ? error.codeName : STATUS_LABEL[status])}\r\n </span>\r\n )\r\n}\r\n\r\n// ---------------------------------------------------------------- Hash (copy on click)\r\n\r\n/**\r\n * Monospace, middle-truncated hash that copies on click and shows a \"Copied\" tick.\r\n * @example <CopyHash value={receipt.block.stateRoot} />\r\n */\r\nexport function CopyHash({ value, head = 6, tail = 6, className }: { value: string; head?: number; tail?: number; className?: string }) {\r\n const [copied, setCopied] = useState(false)\r\n useEffect(() => {\r\n if (!copied) return\r\n const t = setTimeout(() => setCopied(false), 1200)\r\n return () => clearTimeout(t)\r\n }, [copied])\r\n return (\r\n <button\r\n type=\"button\"\r\n className={cx('vq-hash', copied && 'vq-hash--copied', className)}\r\n title={value}\r\n aria-label={`Copy ${value}`}\r\n onClick={(e) => {\r\n e.stopPropagation()\r\n void navigator.clipboard?.writeText(value).then(() => setCopied(true))\r\n }}\r\n >\r\n <span>{shortHash(value, head, tail)}</span>\r\n <span className=\"vq-hash__tick\" aria-live=\"polite\">{copied ? '✓ Copied' : ''}</span>\r\n </button>\r\n )\r\n}\r\n\r\n// ---------------------------------------------------------------- ReceiptCard\r\n\r\nexport interface ReceiptCardProps extends DivProps {\r\n receipt?: TrustReceipt | null\r\n /** Proven value: wei for balances, hex or bigint for storage. */\r\n value?: bigint | string | null\r\n attempts?: Attempt[]\r\n /** Show a failed read instead of a receipt. */\r\n error?: VeriqError | null\r\n /** Custom value formatter. Default: ETH for balances, raw for storage. */\r\n formatValue?: (value: bigint | string, receipt: TrustReceipt | null) => ReactNode\r\n /** Extra line under the value (method, address, time…). */\r\n subtitle?: ReactNode\r\n /** Extra elements next to the status badge. */\r\n badgeExtra?: ReactNode\r\n /** What \"Raw JSON\" and the download contain. Default: the receipt. */\r\n raw?: unknown\r\n}\r\n\r\nfunction defaultValue(value: bigint | string, receipt: TrustReceipt | null): ReactNode {\r\n if (receipt && /storage/i.test(receipt.identity.method)) {\r\n const v = typeof value === 'bigint' ? value : BigInt(value)\r\n return v.toString()\r\n }\r\n return formatEth(value)\r\n}\r\n\r\nfunction Row({ label, children }: { label: string; children: ReactNode }) {\r\n return (\r\n <div className=\"vq-row\">\r\n <dt>{label}</dt>\r\n <dd>{children}</dd>\r\n </div>\r\n )\r\n}\r\n\r\nfunction download(json: string) {\r\n const url = URL.createObjectURL(new Blob([json], { type: 'application/json' }))\r\n const a = document.createElement('a')\r\n a.href = url\r\n a.download = 'receipt.json'\r\n a.click()\r\n URL.revokeObjectURL(url)\r\n}\r\n\r\n/**\r\n * A full Trust Receipt in the dashboard's card style.\r\n * @example <ReceiptCard receipt={result.receipt} value={result.value} attempts={result.attempts} />\r\n */\r\nexport function ReceiptCard({ receipt, value, attempts = [], error, formatValue = defaultValue, subtitle, badgeExtra, raw, className, ...rest }: ReceiptCardProps) {\r\n const r = receipt ?? null\r\n const json = JSON.stringify(raw ?? r ?? (error ? { code: error.code, name: error.codeName, message: error.message } : null), (_k, v: unknown) => (typeof v === 'bigint' ? v.toString() : v), 2)\r\n return (\r\n <section {...rest} className={cx('vq-card', className)}>\r\n <div className=\"vq-card__head\">\r\n <div className=\"vq-card__badges\">\r\n <ReceiptBadge size=\"lg\" {...(error ? { error } : { status: r?.verification.status ?? 'unsupported' })} />\r\n {badgeExtra}\r\n </div>\r\n {error ? (\r\n <div className=\"vq-card__error\">\r\n <div className=\"vq-mono vq-text-err\">\r\n {error.codeName} · {error.code}\r\n </div>\r\n <p className=\"vq-card__meaning\">{error.meaning}</p>\r\n <p className=\"vq-muted\">{error.message}</p>\r\n <p className=\"vq-hint\">→ {error.hint}</p>\r\n </div>\r\n ) : (\r\n value != null && <div className=\"vq-card__value\">{formatValue(value, r)}</div>\r\n )}\r\n {subtitle && <div className=\"vq-card__subtitle\">{subtitle}</div>}\r\n </div>\r\n\r\n {r && (\r\n <dl className=\"vq-card__section\">\r\n <Row label=\"Block\">\r\n <span className=\"vq-mono\">\r\n #{formatNumber(r.block.number)} {r.block.finalized ? <span className=\"vq-text-ok\">finalized</span> : <span className=\"vq-text-warn\">not finalized</span>}\r\n </span>\r\n <CopyHash value={r.block.hash} />\r\n </Row>\r\n <Row label=\"State root\">\r\n <CopyHash value={r.block.stateRoot} />\r\n </Row>\r\n <Row label=\"Root source\">\r\n <span className={cx('vq-chip', r.verification.rootSource === 'untrusted-rpc' ? 'vq-chip--warn' : 'vq-chip--ok')}>{rootSourceLabel(r.verification.rootSource)}</span>\r\n </Row>\r\n <Row label=\"Verifier\">\r\n <span className=\"vq-mono\">{r.verification.verifierLocation}</span>\r\n </Row>\r\n <Row label=\"Mechanisms\">\r\n <span className=\"vq-chips\">\r\n {r.verification.mechanisms.length === 0 ? <span className=\"vq-muted\">none</span> : r.verification.mechanisms.map((m) => <span key={m} className=\"vq-chip vq-chip--lav\">{m}</span>)}\r\n </span>\r\n </Row>\r\n <Row label=\"Transport\">\r\n <span className=\"vq-mono\">{r.privacy.mechanism ? `${r.privacy.transport} (${r.privacy.mechanism})` : r.privacy.transport}</span>\r\n </Row>\r\n <Row label=\"Comparison\">\r\n <span className=\"vq-mono\">{r.routing.comparison}</span>\r\n </Row>\r\n {r.warnings.length > 0 && (\r\n <Row label=\"Warnings\">\r\n <ul className=\"vq-list\">\r\n {r.warnings.map((w) => (\r\n <li key={w.code} className=\"vq-text-warn\">\r\n <span className=\"vq-mono\">{w.code}</span> — {w.message}\r\n </li>\r\n ))}\r\n </ul>\r\n </Row>\r\n )}\r\n </dl>\r\n )}\r\n\r\n <div className=\"vq-card__section\">\r\n <h4 className=\"vq-card__h\">Attempts</h4>\r\n {attempts.length === 0 ? (\r\n <p className=\"vq-muted\">{r ? `${r.routing.providersTried} provider(s) tried${r.routing.providerLabel ? `, answered by ${r.routing.providerLabel}` : ''}.` : 'No provider was contacted.'}</p>\r\n ) : (\r\n <ol className=\"vq-attempts\">\r\n {attempts.map((a, i) => (\r\n <li key={i} className={cx('vq-attempt', a.outcome === 'ok' ? 'vq-attempt--ok' : 'vq-attempt--rejected')}>\r\n <span className=\"vq-attempt__dot\" aria-hidden=\"true\" />\r\n <div className=\"vq-attempt__body\">\r\n <div className=\"vq-attempt__line\">\r\n <span className=\"vq-attempt__provider\">{a.provider}</span>\r\n <span className=\"vq-mono vq-attempt__outcome\">{a.outcome}</span>\r\n <span className=\"vq-mono vq-attempt__ms\">{Math.round(a.elapsedMs)} ms</span>\r\n </div>\r\n {a.reason && <p className=\"vq-attempt__reason\">{a.reason}</p>}\r\n </div>\r\n </li>\r\n ))}\r\n </ol>\r\n )}\r\n </div>\r\n\r\n {r && (\r\n <div className=\"vq-card__section\">\r\n <h4 className=\"vq-card__h\">Bindings</h4>\r\n <dl>\r\n <Row label=\"requestBinding\">\r\n <CopyHash value={r.identity.requestBinding} />\r\n </Row>\r\n <Row label=\"resultBinding\">\r\n <CopyHash value={r.identity.resultBinding} />\r\n </Row>\r\n <Row label=\"requestId\">\r\n <CopyHash value={r.identity.requestId} head={8} />\r\n </Row>\r\n </dl>\r\n </div>\r\n )}\r\n\r\n <details className=\"vq-raw\">\r\n <summary>Raw JSON</summary>\r\n <pre>{json}</pre>\r\n </details>\r\n <button type=\"button\" className=\"vq-pill\" onClick={() => download(json)}>\r\n <span>Download receipt.json</span>\r\n <span className=\"vq-pill__circle\" aria-hidden=\"true\">\r\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\r\n <path d=\"M12 4v12M6 10l6 6 6-6M5 20h14\" />\r\n </svg>\r\n </span>\r\n </button>\r\n </section>\r\n )\r\n}\r\n\r\n// ---------------------------------------------------------------- VerifiedValue\r\n\r\nexport interface VerifiedValueProps extends DivProps {\r\n address: string\r\n /** Read a storage slot instead of the balance. */\r\n slot?: string\r\n /** \"eth\" (default) for balances, \"raw\" for the number, or your own formatter. */\r\n format?: 'eth' | 'raw' | ((value: bigint | string) => ReactNode)\r\n policy?: Policy\r\n refreshInterval?: number\r\n}\r\n\r\n/**\r\n * A proven value in the heading style with its status badge. Click it for the full receipt.\r\n * @example <VerifiedValue address=\"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045\" />\r\n */\r\nexport function VerifiedValue({ address, slot, format = 'eth', policy, refreshInterval, className, ...rest }: VerifiedValueProps) {\r\n const opts = { ...(policy ? { policy } : {}), ...(refreshInterval ? { refreshInterval } : {}) }\r\n const balance = useVerifiedBalance(slot ? null : address, opts)\r\n const storage = useVerifiedStorage(slot ? address : null, slot ?? null, opts)\r\n const q = slot ? storage : balance\r\n const [open, setOpen] = useState(false)\r\n const wrapRef = useRef<HTMLSpanElement>(null)\r\n const popId = useId()\r\n\r\n useEffect(() => {\r\n if (!open) return\r\n const onKey = (e: KeyboardEvent) => e.key === 'Escape' && setOpen(false)\r\n const onDown = (e: MouseEvent) => wrapRef.current && !wrapRef.current.contains(e.target as Node) && setOpen(false)\r\n document.addEventListener('keydown', onKey)\r\n document.addEventListener('mousedown', onDown)\r\n return () => {\r\n document.removeEventListener('keydown', onKey)\r\n document.removeEventListener('mousedown', onDown)\r\n }\r\n }, [open])\r\n\r\n if (q.isLoading && !q.data) {\r\n return <span {...rest} className={cx('vq-value', className)} aria-busy=\"true\"><span className=\"vq-skeleton vq-skeleton--value\" /><span className=\"vq-skeleton vq-skeleton--badge\" /></span>\r\n }\r\n if (q.error && !q.data) {\r\n return (\r\n <span {...rest} role=\"alert\" className={cx('vq-value vq-value--error', className)}>\r\n <ReceiptBadge error={q.error} />\r\n <span className=\"vq-value__hint\">\r\n <strong>{q.error.name}</strong> {q.error.hint}\r\n </span>\r\n </span>\r\n )\r\n }\r\n if (!q.data) return null\r\n const v = q.data.value\r\n const shown = typeof format === 'function' ? format(v) : format === 'raw' || slot ? BigInt(v).toString() : formatEth(v)\r\n return (\r\n <span {...rest} ref={wrapRef} className={cx('vq-value vq-fade', className)}>\r\n <button type=\"button\" className=\"vq-value__button\" aria-expanded={open} aria-controls={popId} onClick={() => setOpen((o) => !o)}>\r\n <span className=\"vq-value__num\">{shown}</span>\r\n <ReceiptBadge status={q.data.receipt.verification.status} />\r\n </button>\r\n {open && (\r\n <span id={popId} role=\"dialog\" aria-label=\"Trust receipt\" className=\"vq-popover vq-fade\">\r\n <ReceiptCard receipt={q.data.receipt} value={v} attempts={q.data.attempts} />\r\n </span>\r\n )}\r\n </span>\r\n )\r\n}\r\n\r\n// ---------------------------------------------------------------- EngineStatus\r\n\r\nexport interface EngineStatusProps extends DivProps {\r\n /** Controlled mode: pass health yourself (null = offline). Omit to fetch with useVeriqHealth. */\r\n health?: EngineHealth | null\r\n /** Shown when online and the engine doesn't report `bind`. Default 127.0.0.1:8547. */\r\n address?: string\r\n refreshInterval?: number\r\n}\r\n\r\n/**\r\n * \"● Engine online · 127.0.0.1:8547\" / grey \"● Engine offline\", plus an amber DEV MODE pill for untrusted roots.\r\n * @example <EngineStatus />\r\n */\r\nexport function EngineStatus({ health, address, refreshInterval, className, ...rest }: EngineStatusProps) {\r\n const controlled = health !== undefined\r\n const hasClient = useVeriqClient() !== null\r\n const q = useVeriqHealth({ enabled: !controlled && hasClient, ...(refreshInterval ? { refreshInterval } : {}) })\r\n const h = controlled ? health : (q.data ?? null)\r\n const online = h !== null && h !== undefined && (controlled || !q.error)\r\n const dev = online && (h.devMode || h.rootSource === 'untrusted-rpc')\r\n return (\r\n <span {...rest} className={cx('vq-status-group', className)}>\r\n <span className={cx('vq-status', online ? 'vq-status--online' : 'vq-status--offline')} role=\"status\">\r\n <span className=\"vq-status__dot\" aria-hidden=\"true\" />\r\n <span className=\"vq-status__label\">{online ? `Engine online · ${address ?? h.bind ?? '127.0.0.1:8547'}` : !controlled && q.isLoading ? 'Checking engine…' : 'Engine offline'}</span>\r\n </span>\r\n {dev && <span className=\"vq-status vq-status--dev\">DEV MODE — unverified</span>}\r\n </span>\r\n )\r\n}\r\n"]}
|
package/package.json
CHANGED
|
@@ -1,78 +1,80 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "veriq-client",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "Verified Ethereum reads, with a receipt for every answer.",
|
|
5
|
-
"license": "MIT",
|
|
6
|
-
"type": "module",
|
|
7
|
-
"sideEffects": [
|
|
8
|
-
"*.css"
|
|
9
|
-
],
|
|
10
|
-
"main": "./dist/index.cjs",
|
|
11
|
-
"module": "./dist/index.js",
|
|
12
|
-
"types": "./dist/index.d.ts",
|
|
13
|
-
"exports": {
|
|
14
|
-
".": {
|
|
15
|
-
"source": "./src/index.ts",
|
|
16
|
-
"types": "./dist/index.d.ts",
|
|
17
|
-
"import": "./dist/index.js",
|
|
18
|
-
"require": "./dist/index.cjs"
|
|
19
|
-
},
|
|
20
|
-
"./react": {
|
|
21
|
-
"source": "./src/react/index.ts",
|
|
22
|
-
"types": "./dist/react/index.d.ts",
|
|
23
|
-
"import": "./dist/react/index.js",
|
|
24
|
-
"require": "./dist/react/index.cjs"
|
|
25
|
-
},
|
|
26
|
-
"./styles.css": {
|
|
27
|
-
"source": "./src/react/styles.css",
|
|
28
|
-
"default": "./dist/styles.css"
|
|
29
|
-
},
|
|
30
|
-
"./
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
"
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
"@
|
|
68
|
-
"@types/
|
|
69
|
-
"
|
|
70
|
-
"react": "^18.3.
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
|
|
78
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "veriq-client",
|
|
3
|
+
"version": "0.1.2",
|
|
4
|
+
"description": "Verified Ethereum reads, with a receipt for every answer.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"sideEffects": [
|
|
8
|
+
"*.css"
|
|
9
|
+
],
|
|
10
|
+
"main": "./dist/index.cjs",
|
|
11
|
+
"module": "./dist/index.js",
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"exports": {
|
|
14
|
+
".": {
|
|
15
|
+
"source": "./src/index.ts",
|
|
16
|
+
"types": "./dist/index.d.ts",
|
|
17
|
+
"import": "./dist/index.js",
|
|
18
|
+
"require": "./dist/index.cjs"
|
|
19
|
+
},
|
|
20
|
+
"./react": {
|
|
21
|
+
"source": "./src/react/index.ts",
|
|
22
|
+
"types": "./dist/react/index.d.ts",
|
|
23
|
+
"import": "./dist/react/index.js",
|
|
24
|
+
"require": "./dist/react/index.cjs"
|
|
25
|
+
},
|
|
26
|
+
"./styles.css": {
|
|
27
|
+
"source": "./src/react/styles.css",
|
|
28
|
+
"default": "./dist/styles.css"
|
|
29
|
+
},
|
|
30
|
+
"./verifier.wasm": "./wasm/veriq_verifier.wasm",
|
|
31
|
+
"./package.json": "./package.json"
|
|
32
|
+
},
|
|
33
|
+
"bin": {
|
|
34
|
+
"veriq": "./dist/bin/veriq.js"
|
|
35
|
+
},
|
|
36
|
+
"files": [
|
|
37
|
+
"dist",
|
|
38
|
+
"wasm",
|
|
39
|
+
"README.md"
|
|
40
|
+
],
|
|
41
|
+
"engines": {
|
|
42
|
+
"node": ">=18"
|
|
43
|
+
},
|
|
44
|
+
"scripts": {
|
|
45
|
+
"build": "tsup && node scripts/size.mjs",
|
|
46
|
+
"dev": "tsup --watch",
|
|
47
|
+
"test": "vitest run",
|
|
48
|
+
"lint": "tsc --noEmit -p tsconfig.json",
|
|
49
|
+
"prepublishOnly": "pnpm run lint && pnpm run test && pnpm run build"
|
|
50
|
+
},
|
|
51
|
+
"dependencies": {
|
|
52
|
+
"zod": "^3.23.8"
|
|
53
|
+
},
|
|
54
|
+
"peerDependencies": {
|
|
55
|
+
"react": ">=18",
|
|
56
|
+
"viem": "^2.21.0"
|
|
57
|
+
},
|
|
58
|
+
"peerDependenciesMeta": {
|
|
59
|
+
"react": {
|
|
60
|
+
"optional": true
|
|
61
|
+
},
|
|
62
|
+
"viem": {
|
|
63
|
+
"optional": true
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"devDependencies": {
|
|
67
|
+
"@testing-library/react": "^16.3.3",
|
|
68
|
+
"@types/node": "^22.20.5",
|
|
69
|
+
"@types/react": "^18.3.31",
|
|
70
|
+
"@types/react-dom": "^18.3.7",
|
|
71
|
+
"happy-dom": "^15.11.7",
|
|
72
|
+
"react": "^18.3.1",
|
|
73
|
+
"react-dom": "^18.3.1",
|
|
74
|
+
"tsup": "^8.5.1",
|
|
75
|
+
"tsx": "^4.23.15",
|
|
76
|
+
"typescript": "^5.9.3",
|
|
77
|
+
"viem": "^2.57.11",
|
|
78
|
+
"vitest": "^2.1.9"
|
|
79
|
+
}
|
|
80
|
+
}
|
|
Binary file
|