Qu'est-ce que le «sélecteur» dans l'appel d'API ChainLink?
J'utilise l'exemple de chainlink pour appeler une API; cependant, je ne suis pas sûr que ce soit le cas.
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);
}
Je sais que cela appelle la fonction suivante
function fulfill(bytes32 _requestId, bool _isProofCorrect, unit val) public recordChainlinkFulfillment(_requestId){
customers[1].proof = _isProofCorrect;
}
Mais que fait le sélecteur dans le code ci-dessus (this.fulfill.selecor)?
Réponses
que fait le sélecteur dans le code ci-dessus (this.fulfill.selecor)?
Dans votre buildChainlinkRequest
fonction, il faut 3 arguments :
bytes32 _specId
address _callbackAddress
bytes4 _callbackFunctionSignature
Le bytes4 _callbackFunctionSignature
indique au nœud Chainlink la méthode à appeler lorsqu'il renvoie les données. Il est connu sous le nom de sélecteur de fonction et permet au nœud de spécifier exactement ce qu'il doit rappeler, dans votre cas, la fulfill
fonction.
En outre, comment puis-je passer un argument à la fonction de réalisation? J'essaie de mettre à jour la variable de preuve de la carte de mes clients en utilisant ce que le chainlink appelle.