UNPKG

test-triam-base-contract

Version:

Low level triam smart cotnract support library

154 lines (138 loc) 4.53 kB
'use strict'; var http = require('http'); var ab2str = function ab2str(buf) { return String.fromCharCode.apply(null, new Uint16Array(buf)); }; var str2ab = function str2ab(str) { var buf = new ArrayBuffer(str.length * 2); // 2 bytes for each char var bufView = new Uint16Array(buf); for (var i = 0, strLen = str.length; i < strLen; i++) { bufView[i] = str.charCodeAt(i); } return buf; }; var toArrayBuffer = function toArrayBuffer(buf) { var ab = new ArrayBuffer(buf.length); var view = new Uint8Array(ab); for (var i = 0; i < buf.length; ++i) { view[i] = buf[i]; } return ab; }; var toBuffer = function toBuffer(ab) { var buf = new Buffer(ab.byteLength); var view = new Uint8Array(ab); for (var i = 0; i < buf.length; ++i) { buf[i] = view[i]; } return buf; }; 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) { // consume response data to free up memory 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) { // console.error(e.message); 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) { // consume response data to free up memory 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) { // console.error(e.message); 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) { // consume response data to free up memory 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) { // console.error(e.message); reject(e.message); } }); }); }); }; module.exports = { ab2str: ab2str, str2ab: str2ab, toArrayBuffer: toArrayBuffer, toBuffer: toBuffer, getState: getState, getBalance: getBalance, getLedgerSeq: getLedgerSeq }; // getBalance('CBF3V5UX5E5KXVM73FNWPQH5OPJXBTH7IEUGKW5OUCA2SGFHHEP3JJ2N').then(data => console.log('data', data)).catch(err => console.log(err));