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