UNPKG

test-triam-base-contract

Version:

Low level triam smart cotnract support library

148 lines (132 loc) 4.43 kB
'use strict'; var http = require('http'); var getBalance = function getBalance(_account) { return new Promise(function (resolve, reject) { http.get('http://' + process.env['HOST'] + ':' + process.env['PORT'] + '/balance?id=' + _account, function (res) { var statusCode = res.statusCode; var contentType = res.headers['content-type']; var error = void 0; if (statusCode !== 200) { error = new Error('Request Failed.\n' + ('Status Code: ' + statusCode)); } else if (!/^application\/json/.test(contentType)) { error = new Error('Invalid content-type.\n' + ('Expected application/json but received ' + contentType)); } if (error) { res.resume(); return; } res.setEncoding('utf8'); var rawData = ''; res.on('data', function (chunk) { rawData += chunk; }); res.on('end', function () { try { var parsedData = JSON.parse(rawData); resolve(parsedData); } catch (e) { reject(e.message); } }); }); }); }; var getLedgerSeq = function getLedgerSeq() { return new Promise(function (resolve, reject) { http.get('http://' + process.env['HOST'] + ':' + process.env['PORT'] + '/ledger', function (res) { var statusCode = res.statusCode; var contentType = res.headers['content-type']; var error = void 0; if (statusCode !== 200) { error = new Error('Request Failed.\n' + ('Status Code: ' + statusCode)); } else if (!/^application\/json/.test(contentType)) { error = new Error('Invalid content-type.\n' + ('Expected application/json but received ' + contentType)); } if (error) { res.resume(); return; } res.setEncoding('utf8'); var rawData = ''; res.on('data', function (chunk) { rawData += chunk; }); res.on('end', function () { try { var parsedData = JSON.parse(rawData); resolve(parsedData); } catch (e) { reject(e.message); } }); }); }); }; var getState = function getState(_account) { return new Promise(function (resolve, reject) { http.get('http://' + process.env['HOST'] + ':' + process.env['PORT'] + '/state?id=' + _account, function (res) { var statusCode = res.statusCode; var contentType = res.headers['content-type']; var error = void 0; if (statusCode !== 200) { error = new Error('Request Failed.\n' + ('Status Code: ' + statusCode)); } else if (!/^application\/json/.test(contentType)) { error = new Error('Invalid content-type.\n' + ('Expected application/json but received ' + contentType)); } if (error) { res.resume(); return; } res.setEncoding('utf8'); var rawData = ''; res.on('data', function (chunk) { rawData += chunk; }); res.on('end', function () { try { var parsedData = JSON.parse(rawData); resolve(parsedData); } catch (e) { reject(e.message); } }); }); }); }; var getBalanceAsset = function getBalanceAsset(_assetCode, _issuer, _account) { return new Promise(function (resolve, reject) { http.get('http://' + process.env['HOST'] + ':' + process.env['PORT'] + '/gettrustorbalance?assetcode=' + _assetCode + '&issuer=' + _issuer + '&accountid=' + _account, function (res) { var statusCode = res.statusCode; var contentType = res.headers['content-type']; var error = void 0; if (statusCode !== 200) { error = new Error('Request Failed.\n' + ('Status Code: ' + statusCode)); } else if (!/^application\/json/.test(contentType)) { error = new Error('Invalid content-type.\n' + ('Expected application/json but received ' + contentType)); } if (error) { res.resume(); return; } res.setEncoding('utf8'); var rawData = ''; res.on('data', function (chunk) { rawData += chunk; }); res.on('end', function () { try { var parsedData = JSON.parse(rawData); resolve(parsedData); } catch (e) { reject(e.message); } }); }); }); }; module.exports = { getState: getState, getBalance: getBalance, getLedgerSeq: getLedgerSeq, getBalanceAsset: getBalanceAsset };