ChainLink API呼び出しの「セレクター」とは何ですか?

Nov 30 2020

チェーンリンクの例を使用して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)で何をしますか?

回答

1 PatrickCollins Nov 30 2020 at 18:47

上記のコード(this.fulfill.selecor)でセレクターは何をしますか?

あなたにはbuildChainlinkRequest機能、それは3つの引数を取ります:

  • bytes32 _specId
  • address _callbackAddress
  • bytes4 _callbackFunctionSignature

bytes4 _callbackFunctionSignatureそれは、データを返す呼び出しにどのような方法金網のノードに指示します。これは関数セレクターと呼ばれ、ノードがコールバックする必要があるもの(この場合はfulfill関数)を正確に指定できるようにします。

また、fulfill関数に引数を渡すにはどうすればよいですか?chainlinkが呼び出すものを使用して、顧客マップの証明変数を更新しようとしています。