pragma solidity ^0.4.18; contract Auction { event newBid(); address owner; address public leader; address public winner; string public item; uint public leadingBid; function Auction(string name, uint price) public { owner = msg.sender; item = name; leadingBid = price; } function placeBid() payable public{ if (msg.value > leadingBid) { returnPrevBid(); leader = msg.sender; leadingBid = msg.value; newBid(); } } function returnPrevBid() private{ if (leader != 0) { leader.transfer(leadingBid); } } function endAuction() public { if (msg.sender == owner) { winner = leader; owner.transfer(leadingBid); } } }
var event = myAuction.newBid(function(error, result){ if (!error) console.log("New bid placed for " + web3.fromWei(myAuction.leadingBid(),"ether") + " Ether from " + myAuction.leader()); });
流程:
拍卖猫 10以太币
A 创建拍卖智能合约(cat ,10)
B竞价20(B转账到合约20)
C竞价40(C转账到合约40,并且返还B 20)
A结束拍卖 (合约转账40到A)