您现在的位置: 比特财富网 >> 区块链 >  >> 區塊鏈百科
以太坊公開拍賣智能合約案例

這篇文章實現一個簡單的公開拍賣智能合約,所有人都可以出價,把以太幣發送到指定地址,出價B高於出價A時,那麼A的資金會被自動退回。www.emoneybtc.com拍賣結束後,商品所有者會收到最高的出價資金。

代碼如下:

contract SimpleAuction {
  // 定義參數:受益人、開始時間、拍賣持續時間
  address public beneficiary;
  uint public auctionStart;
  uint public biddingTime;

  // 最高出價者
  address public highestBidder;
  // 最高出價
  uint public highestBid;

  // 拍賣結束後,設置這個值為true,不允許被修改。
  bool ended;

  // 最高出價變動時調用事件
  event HighestBidIncreased(address bidder, uint amount);
  // 拍賣結束時調用事件
  event AuctionEnded(address winner, uint amount);

  // 創建一個拍賣對象,初始化參數值:受益人、開始時間、拍賣持續時間 
  function SimpleAuction(uint _biddingTime, address _beneficiary) {
    beneficiary = _beneficiary;
    auctionStart = now;
    biddingTime = _biddingTime;
  }

  // 出價功能:包括交易參數。
  // 當出價不是最高,資金會被自動退回。
  function bid() {
    // 從交易中獲取時間,如果拍賣結束,拒絕出價
    if (now > auctionStart + biddingTime) {
      throw;
    }
    // 如果出價不是最高,資金退回
    if (msg.value <= highestBid) {
      throw;
    }

    // 如果出價最高,當前出價者作為最高出價人
    if (highestBidder != 0) {
      highestBidder.send((highestBid);
    }
    highestBidder = msg.sender;
    highestBid = msg.value;
    HighestBidIncreased(msg.sender, msg.value);
  }

  // 結束拍賣,並轉賬資金到受益人
  function auctionEnd() {
    if (now <= auctionStart + biddingTime)
      throw;
    if (ended)
      throw;
    AuctionEnded(highestBidder, highestBid);

    beneficiary.send(this.balance);
    ended = true;
  }

  // 當交易沒有數據或者數據不對時,觸發此函數,重置出價操作,確保出價者不會丟失資金
  function () {
    throw;
  }
}

從這個案例可以看到,智能合約在拍賣領域能讓過程更透明公平,最大程度的促進參與者的積極性。下一篇文章我們會介紹一個復雜一點的拍賣智能合約。

  • 學會跟著唱 題材股炒作的“五部曲”

       小市值股遭突襲  在股市中,除了整個市場認同的趨勢會獲得資金追捧外,主力資金還會挖掘出一些微觀的概念進行炒作,通常

  • 外匯交易者和分析師的區別

    交易者和分析師的差別是巨大的,一個是操作、實踐型工種,一個是理論、分析型工種,正是因為兩者工作類型的差別,才

  • K線圖介紹1

    K線圖又稱蠟燭線或陰陽線,是目前普遍使用的圖形,K線圖細膩地表現了交易過程中每天交易時間單位(日、周、月、季和年等)內開盤價,收盤價,最高價

  • 2018淘寶整點搶優惠券技巧有嗎?

    最佳答案: 淘寶整點搶優惠券技巧為:1、查看優惠券商品數量一般這種整點券數量多的,就會好搶一點,只有

  • 買的保險保單掉了怎麼辦?

    買的保險保單掉了還需要及時補辦,可以先通過電話進行保單掛失,然後攜帶好個人有效身份證前往保險公司櫃台進行

  風險提示:比特財富網的各種信息資料僅供參考,不構成任何投資建議,不對任何交易提供任何擔保,亦不構成任何邀約,不作為任何法律文件,投資人據此進行投資交易而產生的後果請自行承擔,本網站不承擔任何責任,理財有風險,投資需謹慎。
比特財富網 版權所有 © www.emoneybtc.com