| | pragma solidity ^0.8.0;
|
| | import "@chainlink/contracts/src/v0.8/ChainlinkClient.sol";
|
| |
|
| | contract CreditOracle is ChainlinkClient {
|
| | using Chainlink for Chainlink.Request;
|
| |
|
| | address private oracle;
|
| | bytes32 private jobId;
|
| | uint256 private fee;
|
| |
|
| | constructor() {
|
| | setPublicChainlinkToken();
|
| | oracle = 0x...;
|
| | jobId = "...";
|
| | fee = 0.1 * 10 ** 18;
|
| | }
|
| |
|
| | function requestCreditScore(address user) public returns (bytes32 requestId) {
|
| | Chainlink.Request memory request = buildChainlinkRequest(jobId, address(this), this.fulfill.selector);
|
| | request.add("userId", uint256(uint160(user)));
|
| | return sendChainlinkRequestTo(oracle, request, fee);
|
| | }
|
| |
|
| | function fulfill(bytes32 _requestId, uint256 _creditScore) public recordChainlinkFulfillment(_requestId) {
|
| |
|
| | }
|
| | } |