- https://www.365seal.com/y/eMnPOAmZpJ.html
- https://solidity-cn.readthedocs.io/zh/develop/solidity-by-example.html#id7
value是商品价格。买卖双方在达成交易前,都要向合约质押两倍value的保证金。
- 卖方创建合约
constructor
时,要将2倍value的以太币交给合约锁定。 - 买房调用合约
confirmPurchase
,质押自己2倍value的以太币。 - 卖方发货给买方。
- 买方确认收到商品,调用
confirmReceived
,将value的保证金退还买方,剩余的钱(卖方保证金+商品买款=3*value)都打给卖方。
这样做的好处是
- 如果不论买方恶意不确认收货,买方无法取回自己抵押的保证金2*value,买方仍然无法弥补自己的亏损。
- 如果买方恶意不购买,卖方可以调用
abort
终止本次买卖。 - 如果买方提交保证金后,卖方恶意不发货,买方可以不确认收货,使得卖方无法取回自己的保证金2*value,卖方无法弥补亏损。