test-triam-base-contract
Version:
Low level triam smart cotnract support library
148 lines (132 loc) • 4.43 kB
JavaScript
;
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
};