ChainLink API çağrısındaki "seçici" nedir?

Nov 30 2020

Bir API çağırmak için chainlink'teki örneği kullanıyorum; ancak öyle olduğundan emin değilim.

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);
}

Aşağıdaki işlevi çağırdığını biliyorum

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

Peki selector yukarıdaki kodda (this.fulfill.selecor) ne yapıyor ?

Yanıtlar

1 PatrickCollins Nov 30 2020 at 18:47

seçici yukarıdaki kodda (this.fulfill.selecor) ne yapar?

Senin içinde buildChainlinkRequestişlevi, bu 3 argüman alır :

  • bytes32 _specId
  • address _callbackAddress
  • bytes4 _callbackFunctionSignature

bytes4 _callbackFunctionSignatureVeriyi döndürür çağrısına hangi yöntemi Kafes düğümünü söyler. Bir işlev seçici olarak bilinir ve düğümün, sizin durumunuzda fulfillişlevi , tam olarak neyi geri çağırması gerektiğini belirlemesine izin verir .

Ayrıca, yerine getirme işlevine nasıl bir bağımsız değişken iletebilirim? Chainlink çağrılarını kullanarak müşterilerimin haritasının kanıt değişkenini güncellemeye çalışıyorum.