Bagaimana cara menyampaikan argumen ke pemilih Chainlink?
Nov 30 2020
Saya memiliki pemetaan dengan kunci integer dan nilai struct.
mapping (int => Client) public customers;
Setiap pelanggan memiliki argumen buktinya sendiri yang saya coba perbarui dengan panggilan Chainlink API. Ini struct saya.
struct Client {
int id,
bool proof;
}
Berikut adalah cara saya meminta API mendapatkan panggilan
function checkProof(string memory JobLocation, bytes32 JOBID) public {
Chainlink.Request memory req = buildChainlinkRequest(JOBID, address(this), this.fulfill.selector);
req.add("get",JobLocation);
req.add("path", "proof");
sendChainlinkRequestTo(ORACLE_ADDRESS, req, ORACLE_PAYMENT);
}
Dan fungsi ini memicu fungsi berikut
function fulfill(bytes32 _requestId, bool _isProofCorrect, unit val) public recordChainlinkFulfillment(_requestId){
customers[1].proof = _isProofCorrect;
}
Bagaimana saya bisa memperbarui argumen bukti Konstruksi saya dengan menggunakan ID pelanggan. Sebagai contoh:
customers[<customer_id>].proof = _isProofCorrect;
Jawaban
1 PatrickCollins Nov 30 2020 at 22:17
Untuk semua panggilan Chainlink API , fulfil
metode ini hanya membutuhkan 2 argumen.
bytes32 _requestId
TherequestId
dari chainlink API panggilan.<type> _data
Yang_data
dikembalikan oleh panggilan API Chainlink.
Ini berarti Anda tidak dapat melewatkan 3 parameter.
Artinya, Anda dapat memetakan requestId
nilai Anda , dan akan terlihat seperti ini.
mapping (bytes32 => uint) public requestMapping;
function checkProof(string memory JobLocation, bytes32 JOBID) public {
Chainlink.Request memory req = buildChainlinkRequest(JOBID, address(this), this.fulfill.selector);
req.add("get", JobLocation);
req.add("path", "proof");
bytes32 requestId = sendChainlinkRequestTo(ORACLE_ADDRESS, req, ORACLE_PAYMENT);
requestMapping[requestId] = customerId;
}
function fulfill(bytes32 _requestId, bool _isProofCorrect, unit val) public recordChainlinkFulfillment(_requestId){
uint256 value = requestMapping[_requestId]
customers[value].proof = _isProofCorrect;
}
Selalu Menjadi Ancaman: Mengapa Orang Berkulit Coklat dan Hitam Tidak Bisa Nyaman di Amerika Serikat
Jana Duggar: Semua yang Dia Katakan Tentang Cinta dan Jendela 5 Tahunnya untuk Menemukan 'Yang Satu'