Skip to content

Atomic Swap

哈希锁领取加超时退款。

txt
# 双路径锁定:接收方凭秘密值领取,发送方在超时后退款。
Contract AtomicSwap:

    def main(x: hex, sig: hex, path: number):
        if path == 1:
            # 领取分支先证明秘密值正确,再验证接收方签名。
            EqualVerify(Sha256(x), self.hashX)
            CheckSigVerify(sig, self.receiver)
        else:
            # 退款分支不使用秘密值,只在超时后开放。
            Delete(x)
            NumEqualVerify(GreaterOrEqual(BVM.locktime, self.timeout),1)
            CheckSigVerify(sig, self.sender)