Apa itu "selector" dalam panggilan ChainLink API?
Saya menggunakan contoh dari chainlink untuk memanggil API; Namun, saya tidak yakin itu terjadi.
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);
}
Saya tahu itu memanggil fungsi berikut
function fulfill(bytes32 _requestId, bool _isProofCorrect, unit val) public recordChainlinkFulfillment(_requestId){
customers[1].proof = _isProofCorrect;
}
Tapi, apa yang dilakukan selector pada kode di atas (this.fulfill.selecor)?
Jawaban
apa yang dilakukan selector pada kode di atas (this.fulfill.selecor)?
Dalam buildChainlinkRequest
fungsi Anda , dibutuhkan 3 argumen :
bytes32 _specId
address _callbackAddress
bytes4 _callbackFunctionSignature
The bytes4 _callbackFunctionSignature
memberitahu node chainlink apa metode untuk panggilan ketika mengembalikan data. Ini dikenal sebagai pemilih fungsi , dan memungkinkan node untuk menentukan dengan tepat apa yang perlu dipanggil kembali, dalam kasus Anda fulfill
fungsinya.
Juga, bagaimana saya bisa meneruskan argumen ke fungsi pemenuhan? Saya mencoba memperbarui variabel bukti peta pelanggan saya dengan menggunakan panggilan chainlink.