Skip to content

Latest commit

 

History

History
80 lines (55 loc) · 1.73 KB

README.md

File metadata and controls

80 lines (55 loc) · 1.73 KB

The Open Oracle Reporter

The Open Oracle Reporter makes it easy to add a price feed to your application web server.

Installation

To add the Open Oracle Reporter to your application, run:

yarn add open-oracle-reporter

Running Stand-alone

You can run this reporter as a stand-alone by providing a simple JavaScript function that will pull the data for the reporter.

yarn global add open-oracle-reporter

open-oracle-reporter \
	--port 3000 \
	--private_key file:./private_key \
	--script ./fetchPrices.js \
    --kind prices \
	--path /prices.json \

Or to quickly test using yarn:

yarn run start \
    --private_key 0x177ee777e72b8c042e05ef41d1db0f17f1fcb0e8150b37cfad6993e4373bdf10 \
    --script examples/fixed.js

Usage

Once you've installed the Open Oracle SDK, you can sign a Open Oracle feed as follows:

import {encode, sign} from 'open-oracle-reporter';

let encoded = encode('prices', Math.floor(+new Date / 1000), {'eth': 260.0, 'zrx': 0.58});
let signature = sign(encoded, '0x...');

Or sign with a remote call:

import {signWith} from 'open-oracle-reporter';

let encoded = encode('prices', Math.floor(+new Date / 1000), {'eth': 260.0, 'zrx': 0.58});
let signature = signWith(encoded, '0x...', signer);

For example, in an express app:

// See above for signing data

express.get('/prices.json', async (req, res) => {
  res.json({
	encoded: encoded,
	signature: signature
  });
});

You may also use the open oracle express adapter:

import {endpoint} from 'open-oracle-reporter';

async function fetchPrices(now) {
	return [now, {'eth': 260.0, 'zrx': 0.58}];
}

app.use(endpoint('0x...', fetchPrices, 'prices', '/prices.json'));