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)