mirror of
https://github.com/luxfi/dex.git
synced 2026-09-24 00:26:31 +00:00
The single place a Lux cross-chain atomic swap is constructed across all three legs, composed from one shared primitive: - secret.go — Secret [32]byte, Hashlock() = sha256(secret), constant-time VerifyPreimage. THE source of the SHA-256 hashlock every leg shares (one 32-byte preimage unlocks BTC, the LP-90A0 swap precompile, and the EVM LXSwapHTLC.sol); keccak is explicitly excluded. - bitcoin.go — the fixed P2WSH HTLC script (OP_IF SHA256/EQUALVERIFY/CHECKSIG // OP_ELSE CLTV/DROP/CHECKSIG), P2WSHAddress, and claim/refund witnesses signed with real BIP143 segwit-v0 sighash via btcd txscript (no hand-rolled sighash; low-S RFC6979 sigs). - evm.go — lock/claim/refund calldata; selectors DERIVED from the canonical ABI signatures and asserted equal to the precompile's 0x4da2c728 / 0x84cc9dfb / 0x7249fbb6. Tests (-race) include real txscript.Engine execution proofs: claim spends with the correct preimage and fails with a wrong one; refund spends at/after locktime and fails before / with CLTV disabled. btcd pinned v0.24.2 (v0.26.0 split chaincfg/wire/txscript into /v2 modules and breaks the build).