UNPKG

ethereum-bridge

Version:

Ethereum logs listener to connect Oraclize onchain events to the Oraclize offchain engine

53 lines (46 loc) 1.91 kB
'use-strict' const request = require('request') const createQuery = function (query, bridgeVersion, callback) { request.post('https://api.oraclize.it/v1/query/create', {body: query, json: true, headers: { 'X-User-Agent': bridgeVersion }}, function (error, response, body) { return handleResponse(error, response, body, callback) }) } const queryStatus = function (queryId, bridgeVersion, callback) { request.get('https://api.oraclize.it/v1/query/' + queryId + '/status', {json: true, headers: { 'X-User-Agent': bridgeVersion }}, function (error, response, body) { return handleResponse(error, response, body, callback) }) } const getPlatformInfo = function (bridgeObj, callback) { request.get('https://api.oraclize.it/v1/platform/info', {json: true, headers: { 'X-User-Agent': bridgeObj.BRIDGE_NAME + '/' + bridgeObj.BRIDGE_VERSION + ' (nodejs)' }}, function (error, response, body) { if (error) return callback(error, null) if (response.statusCode !== 200) return callback(new Error(response.statusCode, 'HTTP status', null)) return callback(null, body) }) } const handleResponse = function (error, response, body, callback) { if (error || !response || (response && response.statusCode !== 200 && response.statusCode !== 401)) { var objError = {} if (error) objError.error = error else objError.error = 'undefined error' objError.fatal = false return callback(objError, body) } else { if (response.statusCode === 200) { if (typeof body === 'object' && typeof body.success !== 'undefined' && body.success === false) return callback({'fatal': false}, null) return callback(null, body) } else if (response.statusCode === 401) { return callback({ responseStatus: 401, fatal: true }, body) } } } module.exports = { createQuery, queryStatus, getPlatformInfo }