Files
zeekay 1adfb467d0 feat(tx): Lux Q-Chain (PQ-EVM) + Z-Chain (ZK) builders; all builders ready
- Q-Chain (buildQchainUnsignedTx): the UNSIGNED tx is a standard EIP-1559
  transaction — PQ affects ONLY the signature the keyring attaches
  (ML-DSA-65 via luxfi/crypto), never the unsigned bytes. So the encoding
  is viem serializeTransaction at the Q-Chain id; digest = keccak256(bytes)
  (what the ML-DSA signer signs). 5 tests: round-trip through viem +
  byte-identity proof vs buildEvmUnsignedTx (the encoding IS canonical EVM).
- Z-Chain (buildZchainUnsignedTx): transparent transfer = the verified
  X-Chain BaseTx wire format (same secp256k1fx/codec family). 4 tests:
  byte-identity with the KAT-verified buildXvmUnsignedTx (transitive Go-SDK
  verification) + full structural round-trip decode. Shielded notes scoped
  as a forward-compatible memo extension.

Removed stubs.ts entirely — no todo builders remain. BUILDER_STATUS
re-keyed by builder identity (luxX/luxP/luxQ/luxZ) and EVERY entry is
'ready'. 64 tests green. Libs: viem (MIT), @noble/hashes (MIT) — zero copyleft.
2026-07-28 10:11:27 -07:00
..