litecore-explorers
Version:
Module to query blockchain apis for Litecoin.
44 lines (36 loc) • 1.23 kB
JavaScript
;
var litecore = require('litecore-lib');
var _ = litecore.deps._;
var $ = litecore.util.preconditions;
var Address = litecore.Address;
var JSUtil = litecore.util.js;
function AddressInfo(param) {
if (!(this instanceof AddressInfo)) {
return new AddressInfo(param);
}
if (param instanceof AddressInfo) {
return param;
}
$.checkArgument(param.address instanceof Address);
$.checkArgument(_.isNumber(param.balance));
$.checkArgument(_.isNumber(param.totalSent));
$.checkArgument(_.isNumber(param.totalReceived));
$.checkArgument(_.isNumber(param.unconfirmedBalance));
$.checkArgument(_.isArray(param.transactionIds));
$.checkArgument(_.all(_.map(param.transactionIds, JSUtil.isHexa)));
JSUtil.defineImmutable(this, param);
}
AddressInfo.fromInsight = function(param) {
if (_.isString(param)) {
param = JSON.parse(param);
}
return new AddressInfo({
address: new Address(param.addrStr),
balance: param.balanceSat,
totalReceived: param.totalReceivedSat,
totalSent: param.totalSentSat,
unconfirmedBalance: param.unconfirmedBalanceSat,
transactionIds: param.transactions
});
};
module.exports = AddressInfo;