ChainLink API 호출에서 "선택기"는 무엇입니까?

Nov 30 2020

API를 호출하기 위해 chainlink의 예제를 사용하고 있습니다. 그러나 나는 그것이 확실하지 않다.

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)에서 선택자는 무엇을 합니까?

답변

1 PatrickCollins Nov 30 2020 at 18:47

선택자는 위의 코드 (this.fulfill.selecor)에서 무엇을합니까?

당신의에서 buildChainlinkRequest기능, 그것은 3 개 인수를 사용합니다 :

  • bytes32 _specId
  • address _callbackAddress
  • bytes4 _callbackFunctionSignature

bytes4 _callbackFunctionSignature이 데이터를 반환 호출에 어떤 방법에 고리 노드를 알려줍니다. 함수 선택기 라고하며 , 노드가 콜백해야하는 것을 정확히 지정할 수 있도록합니다 (귀하의 경우 fulfill함수).

또한, fulfill 함수에 인수를 어떻게 전달할 수 있습니까? 어떤 chainlink 호출을 사용하여 내 고객 맵의 증명 변수를 업데이트하려고합니다.