闡述“區塊鏈系統開發”專案方案

Tg_StPv888發表於2023-03-30

  區塊鏈是一個不可變的記錄鏈,稱為塊,可促進交Y,有助於跟蹤Z產並記錄資料和檔案,其具有去中心化、不可篡改、全程留痕、集體維護、公開透明等特點,基於這些特點,區塊鏈技術可以開√發出自帶信任體系特徵的系統,實現多個主體之間的協作信任與一致行動。


  在這次的實戰演練中,我們將介紹如何讓你的智慧合約連線到Twitter API。具體來說,我們將解釋如何從智慧合約中發出一條推文,但是圍繞社交媒體進行資料分析和智慧合約的執行所展示出來的可能性卻是無限的。


  建構函式


  pragma solidity^0.6.12;


  import"


  contract ChainlinkTwitter is ChainlinkClient{


  address private oracle;


  bytes32 private jobId;


  uint256 private fee;


  uint256 public statusCode;


  //only the contract owner should be able to tweet


  address payable owner;


  modifier onlyOwner{


  require(msg.sender==owner);


  _;


  }


  constructor()public{


  setPublicChainlinkToken();


  oracle=0x4CF0507fe3236DedDbE6cD18508f35D9b5e16e7C;//oracle address


  jobId="948db03c9576480a8fa0545bee5b28ab";//job id


  fee=11*10**17;//1.1 LINK


  owner=msg.sender;


  }


  我們從熟悉的ChainlinkClient匯入和繼承開始。匯入ChainlinkClient合約包含了構建請求、提交給一個或多個Chainlink節點,並接收回復所需的所有功能。只需定義你選擇的oracle地址,該節點為其Twitter Job提供的作業規範ID(job spec ID),並定義該節點處理請求所需的費用。此外,我們還定義了onlyOwner修飾符,這樣只有建立合約的地址才能透過這個合約發推特。


  Tweet函式


  //tweets the supplied string


  function tweet(string memory twt)public onlyOwner{


  Chainlink.Request memory req=buildChainlinkRequest(jobId,address(this),this.fulfill.selector);


  //req.add("endpoint",");


  req.add("status",twt);


  req.add("copyPath","statusCode")


  sendChainlinkRequestTo(oracle,req,fee);


  }


  //callback function


  function fulfill(bytes32 _requestId,uint256 _statusCode)public recordChainlinkFulfillment(_requestId){


  statusCode=_statusCode;


  }


  構建了合約之後,發推特就非常簡單了。tweet函式接收要推送的字串,建立請求結構體,並將其提交給定義的Chainlink節點。請求結構中需要兩個欄位:status和copyPath。status,即我們希望釋出的推文,在Twitter外部介面卡中被定義為一個輸入,該節點將執行它來完成這項工作。而copyPath則是所有Chainlink節點支援的預設介面卡的一部分,它告訴節點如何解析JSON輸出。此外,endpoint可以指定為不同的Twitter端點,具有不同的功能,但介面卡默即可釋出推文狀態,因此目前不需要關心這一引數。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70016646/viewspace-2942652/,如需轉載,請註明出處,否則將追究法律責任。

相關文章