Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 76 additions & 0 deletions APIBattery.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
// SPDX-License-Identifier: MIT

pragma solidity ^0.6.6;

import "@chainlink/contracts/src/v0.6/ChainlinkClient.sol";

contract APIConsumer is ChainlinkClient {
uint256 public _endBattery;
uint256 public BatteryDecimal;

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 _percentRemaining)
public
recordChainlinkFulfillment(_requestId)
{
_endBattery = _percentRemaining / 1000;
BatteryDecimal = _percentRemaining % 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))
}
}
}
67 changes: 0 additions & 67 deletions APIConsumer.sol

This file was deleted.

76 changes: 76 additions & 0 deletions APIFuel.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
// SPDX-License-Identifier: MIT

pragma solidity ^0.6.6;

import "@chainlink/contracts/src/v0.6/ChainlinkClient.sol";

contract APIConsumer is ChainlinkClient {
uint256 public _endFuel;
uint256 public FuelDecimal;

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 _amountRemaining)
public
recordChainlinkFulfillment(_requestId)
{
_endFuel = _amountRemaining / 1000;
FuelDecimal = _amountRemaining % 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))
}
}
}
76 changes: 76 additions & 0 deletions APIOdometer.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
// 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))
}
}
}