mirror of
https://github.com/luxfi/chains.git
synced 2026-09-24 00:26:00 +00:00
Standardize all of chains on github.com/luxfi/warp v1.23.0 (the standalone ZAP-native warp that precompile/evm/bridgevm already use). zkvm/fhe and thresholdvm/fhe are migrated OFF github.com/luxfi/node/vms/platformvm/warp; there are now ZERO platformvm/warp imports in chains. The build->sign->wrap sequence (previously copy-pasted in three places and split across two warp libraries) now lives in exactly one place: internal/warpmsg.BuildSigned(signer, networkID, sourceChainID, payload) -> (*warp.Envelope, error). It builds a content Message (NewMessage), signs it over the Beam domain with the node BLS key, and wraps the signature at validator bit index 0 into a single-signer Envelope. All three send sites call it: - bridgevm/vm.go reshare-request gossip - zkvm/fhe/coprocessor FHE task-result callback - thresholdvm/fhe/relayer decryption fulfillment v1.23.0 split the signature from the Message: the signed/transmittable unit is now *warp.Envelope (Message + Beam BitSetSignature + PQ lanes), not a combined Message. The receive path moves with it: onMessage callbacks and WarpHandler.HandleMessage now carry *warp.Envelope and read authenticated content from env.Message. MPC/BLS single-signer semantics are preserved exactly (bit-0 signer, Beam-domain BLS, receiver aggregates/verifies the BitSetSignature against the canonical validator set via warp.VerifyEnvelope). CGO_ENABLED=0 build/vet clean; bridgevm/zkvm/thresholdvm test suites green.