O que é “seletor” na chamada da API ChainLink?
Estou usando o exemplo do elo da cadeia para chamar uma API; no entanto, não tenho certeza disso.
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);
}
Eu sei que chama a seguinte função
function fulfill(bytes32 _requestId, bool _isProofCorrect, unit val) public recordChainlinkFulfillment(_requestId){
customers[1].proof = _isProofCorrect;
}
Mas, o que o seletor faz no código acima (this.fulfill.selecor)?
Respostas
o que o seletor faz no código acima (this.fulfill.selecor)?
Em sua buildChainlinkRequest
função, leva 3 argumentos :
bytes32 _specId
address _callbackAddress
bytes4 _callbackFunctionSignature
O bytes4 _callbackFunctionSignature
diz ao nó Chainlink qual método chamar quando retornar os dados. É conhecido como seletor de função e permite que o nó especifique exatamente o que precisa chamar de volta, no seu caso a fulfill
função.
Além disso, como posso passar um argumento para a função cumprir? Estou tentando atualizar a variável de prova do mapa de meus clientes usando chamadas de elo de cadeia.