-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAPIConsumer.sol
More file actions
67 lines (54 loc) · 1.73 KB
/
APIConsumer.sol
File metadata and controls
67 lines (54 loc) · 1.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
// SPDX-License-Identifier: MIT
pragma solidity ^0.6.6;
import "@chainlink/contracts/src/v0.6/ChainlinkClient.sol";
contract APIConsumer is ChainlinkClient {
uint256 public _endOdometer;
uint256 public OdometerDecimal;
address private link;
address private oracle;
bytes32 private jobId;
uint256 private fee;
/**
* Network: Kovan
* Kovan link address = 0xa36085F69e2889c224210F603D836748e7dC0088
*/
constructor() public {
link = 0xa36085F69e2889c224210F603D836748e7dC0088;
if (link == address(0)) {
setPublicChainlinkToken();
} else {
setChainlinkToken(link);
}
// oracle = 0x7caBbcCAa965F3466387C001c3154BD69cA26AF5;
// jobId = "b2779045343f4d21879c33d1d95dca36";
// fee = 0
oracle = 0x7caBbcCAa965F3466387C001c3154BD69cA26AF5;
jobId = stringToBytes32("b2779045343f4d21879c33d1d95dca36");
fee = 0;
}
function requestVolumeData(string memory _vehicleId, string memory _encToken) public returns (bytes32 requestId)
{
Chainlink.Request memory request = buildChainlinkRequest(jobId, address(this), this.fulfill.selector);
request.add("vehicleId", _vehicleId);
request.add("encToken", _encToken);
// Sends the request
return sendChainlinkRequestTo(oracle, request, fee);
}
/**
* Receive the response in the form of uint256
*/
function fulfill(bytes32 _requestId, uint256 _distance) public recordChainlinkFulfillment(_requestId)
{
_endOdometer = _distance/1000;
OdometerDecimal = _distance%1000;
}
function stringToBytes32(string memory source) public pure returns (bytes32 result) {
bytes memory tempEmptyStringTest = bytes(source);
if (tempEmptyStringTest.length == 0) {
return 0x0;
}
assembly {
result := mload(add(source, 32))
}
}
}