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 호출을 사용하여 내 고객 맵의 증명 변수를 업데이트하려고합니다.