11 Commits
Author SHA1 Message Date
zeekay 865ec71ef2 fix(corona): relabel Corona/Pulsar as Module-LWE, not Ring-LWE
Corona is a Module-LWE threshold signature (Ringtail/Raccoon line,
ePrint 2024/1113; module dims M=8, N=7 over Z_q[X]/(X^256+1), rank>1).
Pulsar is Module-LWE (FIPS-204 ML-DSA). Neither is Ring-LWE; the "M"
in ML-KEM/ML-DSA is Module.

Fixes the 0x012206 slot-map comments (p3q, magnetar, starkfri,
modules/registerer), the Corona precompile doc comments, the registry
CORONA description string, and the README/LLM/corona-README docs.
Comments, strings, and docs only — no identifier, precompile address,
selector, gas value, or on-chain digest changed.
2026-06-27 16:33:22 -07:00
Lux 88fb997ed7 feat(swap): HTLC atomic-swap precompile LP-90A0 — non-custodial cross-chain settlement
lock/claim/refund with SHA-256 hashlock (BTC OP_SHA256 parity), value-safe
transferFrom-delta funds-in, effects-before-interaction reentrancy safety,
conservation invariant (balanceOf >= Σreserve, paid-out <= locked-in), disjoint
claim(t<timeout)/refund(t>=timeout). No owner/pause/mint selector — non-custody
structural. ERC20/wrapped only (native needs GetCallValue seam). Replaces the
custodial lock-mint for cross-chain atomic swaps. Design: docs/htlc_atomic_swap.tex.
Registered on C + Zoo. 17 tests incl. -race.
2026-06-26 02:21:16 +00:00
zeekay 0bd62f2547 precompile: fix stale P3Q-as-STARK comments + align chain-slot nibble to genesis registry
P3Q (0x012205) is the rollup-commit PQ verifier (kind-byte dispatch to
Pulsar/Corona/Magnetar), NOT a STARK — STARK-FRI is at 0x012220. Correct
three stale comments (magnetar, modules/registerer, fhe/dos_audit) that
labeled 0x012205 a STARK. Align the registry.go C-nibble doc-comment to
the authoritative node/genesis/builder/registry.go: remove phantom
M-Chain, add D-Chain at C=3, mark Zoo/Hanzo/SPC as sovereign-L1 EVM.
Comments only; no constant or VM logic changed. Builds clean.
2026-06-25 14:22:12 -07:00
Hanzo AI d715f00582 fix: gofmt -s across repo (CI format check) 2026-06-02 23:27:11 -07:00
Hanzo AI fb5b68a23a precompile: rename Corona → Corona; assign Ring-LWE threshold slot 0x012206
Corona is the Ring-LWE threshold signature scheme (lattice flavor:
Ring-LWE, vs Pulsar's Module-LWE / ML-DSA). The pre-rename library
name was Corona. Sweep eliminates every Corona reference across
the precompile tree and gives the Ring-LWE threshold its own slot
in the LP-4200 PQCrypto block:

  0x012201 = ML-KEM     (Module-LWE KEM,        FIPS 203)
  0x012202 = ML-DSA     (Module-LWE single-sig, FIPS 204)
  0x012203 = SLH-DSA    (hash-based signature,  FIPS 205)
  0x012204 = Pulsar     (Module-LWE threshold,  FIPS 204 byte-equal)
  0x012205 = P3Q        (strict-PQ STARK)
  0x012206 = Corona     (Ring-LWE threshold)

Pulsar previously squatted 0x012204 alone; Corona/Corona also
claimed 0x012204 — direct slot collision. Fixed by moving Corona
to its own slot 0x012206 since they're distinct primitives
(different lattice flavors).

  - Directory: corona/ → corona/
  - Package:   coronathreshold → coronathreshold
  - Type:      coronaThresholdPrecompile → coronaThresholdPrecompile
  - Var:       CoronaThresholdPrecompile → CoronaThresholdPrecompile
  - Address:   0x012204 → 0x012206
  - Library:   luxfi/corona/sign → luxfi/corona/sign
               luxfi/corona/threshold → luxfi/corona/threshold
  - Interface: ICoronaThreshold.sol → ICoronaThreshold.sol
  - Registry:  CoronaCChain → CoronaCChain, CORONA → CORONA
  - Quasar:    Corona* identifiers in quasar/contract.go renamed
  - Bridge:    docstring sweep

All affected packages build clean. All 5/6 PQ precompile tests pass
(one flaky on first run, green on retry). Bridge has a pre-existing
unrelated build break (ErrChainNameTooLong undefined).
2026-05-13 14:23:53 -07:00
Hanzo AI 0f4134d6b9 fix: P0-P2 hardening — consensus safety, OOM prevention, error unification
P0 consensus-critical:
- FHE: deterministic keygen from SHA-256("LUX_FHE_KEYGEN_v1"), StateDB
  ciphertext storage (replaces ephemeral in-memory ctStore), remove
  crypto/rand fallback
- time.Now() eliminated from 20 state-modifying paths across bridge (12),
  dex (7), attestation (5) — all now use blockTimestamp parameter
- WebSocket: 1024-client semaphore, 64KB read limit, 60s deadline, pong
  handler, origin check on chain/dag/evm indexer subscribers

P1 correctness:
- I-Chain indexer: identity.Health → identity.getLatestBlock
- Graph pagination: min(limit, 1000) cap across 25 resolver files
- Error sentinels: 31 packages unified to contract.ErrInvalidInput

P2 standardization:
- 14 packages migrated from manual gas checks to contract.DeductGas()
- Gas naming: {Name}Gas → Gas{Name} in secp256r1, ed25519, math, quasar
- Registry address format comment clarified (PCII vs legacy ranges)

37/37 precompile tests pass.
2026-03-02 10:11:20 +00:00
Hanzo AI 8e66bd66cd feat: precompiles — anchor, babyjubjub EIP-2494, coverage, slug validation 2026-03-02 02:00:00 +00:00
Zach Kelling ee562b2b08 feat: Ed25519 precompile + Pars/Solana chain IDs
- Add Ed25519 signature verification precompile (LP-3xxx)
- Enable Ed25519, ECDSA_EXT, BLS381 on C-Chain
- Add Pars Network chain IDs (6133/6132)
- Add virtual chain IDs for non-EVM chains (Solana, Bitcoin, XRP, TON)
- Support for verifying Solana/TON/XRP wallet signatures on-chain
2026-01-29 00:58:11 +00:00
Zach Kelling 3c2da28ceb chore: sync with latest dependencies and add tests
- Update frost, mldsa, mlkem contracts
- Add contract tests
- Add threshold accel support
2026-01-26 17:45:39 +00:00
z 0dd253515e chore: update deps, fix node/vms to vm/vms imports, remove stub files 2026-01-09 08:48:29 +00:00
z 290d11c962 fix: use metal tag for GPU files, pure Go is default 2026-01-04 03:22:18 +00:00