External-Api

ChainLink API 呼叫中的“選擇器”是什麼?

  • November 30, 2020

我正在使用來自 chainlink 的範例來呼叫 API;但是,我不確定確實如此。

function checkProof(string memory JobLocation, int job_id) public {
  Chainlink.Request memory req = buildChainlinkRequest(stringToBytes32(JOBID), address(this), this.fulfill.selector);

  req.add("get",JobLocation);

  req.add("path", "proof");

  sendChainlinkRequestTo(ORACLE_ADDRESS, req, ORACLE_PAYMENT);
}

我知道它呼叫以下函式

function fulfill(bytes32 _requestId, bool _isProofCorrect, unit val) public recordChainlinkFulfillment(_requestId){
       customers[1].proof = _isProofCorrect;
}

但是,選擇器在上面的程式碼(this.fulfill.selecor)中做了什麼?

選擇器在上述程式碼 (this.fulfill.selecor) 中做了什麼?

在您的buildChainlinkRequest函式中,它需要 3 個參數

  • bytes32 _specId
  • address _callbackAddress
  • bytes4 _callbackFunctionSignature

告訴 Chainlink 節點在bytes4 _callbackFunctionSignature返回數據時呼叫什麼方法。它被稱為函式選擇器,它允許節點準確指定它需要回調的內容,在你的情況下是fulfill函式。

另外,我怎樣才能將參數傳遞給完成函式?我正在嘗試使用 chainlink 呼叫的內容來更新我的客戶地圖的證明變數。

引用自:https://ethereum.stackexchange.com/questions/90609