Using Berry Sample

Sample project UsingBerry
The Berry oracle is a decentralized oracle on Binance Smart Chain. It provides an option for contracts to securely interact with and obtain data from off-chain.
Quick references are included below:
Implement Berry into your project This repo already includes the usingBerry package.

How to use

1. Clone the project and install dependencies
git clone [email protected]:berrydata/SampleUsingBerry.git
npm install
2. How to Use
Just Inherit the UsingBerry contract, passing the Berry address as a constructor argument:
Here's an example
contract BtcPriceContract is UsingBerry {
//This Contract now have access to all functions on UsingBerry
uint256 btcPrice;
uint256 btcRequetId = 1;
constructor(address payable _berryAddress) UsingBerry(_berryAddress) public {}
function setBtcPrice() public {
bool _didGet;
uint _timestamp;
uint _value;
(_didGet, btcPrice, _timestamp) = getCurrentValue(btcRequetId);
BSC Mainnet: ``
3. The sample contract SampleUsingBerry have access to the following Berry functions:
* @dev Retreive value from oracle based on requestId/timestamp
* @param _requestId being requested
* @param _timestamp to retreive data/value from
* @return uint value for requestId/timestamp submitted
function retrieveData(uint256 _requestId, uint256 _timestamp) public view returns(uint256);
* @dev Gets if the mined value for the specified requestId/_timestamp is currently under dispute
* @param _requestId to looku p
* @param _timestamp is the timestamp to look up miners for
* @return bool true if requestId/timestamp is under dispute
function isInDispute(uint256 _requestId, uint256 _timestamp) public view returns(bool);
* @dev Counts the number of values that have been submited for the request
* @param _requestId the requestId to look up
* @return uint count of the number of values received for the requestId
function getNewValueCountbyRequestId(uint256 _requestId) public view returns(uint);
* @dev Gets the timestamp for the value based on their index
* @param _requestId is the requestId to look up
* @param _index is the value index to look up
* @return uint timestamp
function getTimestampbyRequestIDandIndex(uint256 _requestId, uint256 _index) public view returns(uint256);
* @dev Allows the user to get the latest value for the requestId specified
* @param _requestId is the requestId to look up the value for
* @return bool true if it is able to retreive a value, the value, and the value's timestamp
function getCurrentValue(uint256 _requestId) public view returns (bool ifRetrieve, uint256 value, uint256 _timestampRetrieved);
* @dev Allows the user to get the first value for the requestId before the specified timestamp
* @param _requestId is the requestId to look up the value for
* @param _timestamp before which to search for first verified value
* @return bool true if it is able to retreive a value, the value, and the value's timestamp
function getDataBefore(uint256 _requestId, uint256 _timestamp)
returns (bool _ifRetrieve, uint256 _value, uint256 _timestampRetrieved);
5. To run tests:
npm run test
6. Migrations:
Just run truffle migrate with the desired Network
truffle migrate