bitcore/Address.js

48 lines
1.2 KiB
JavaScript
Raw Normal View History

'use strict';
var imports = require('soop').imports();
var parent = imports.parent || require('./util/VersionedData');
2014-03-14 23:27:06 -07:00
var networks= imports.networks || require('./networks');
2013-07-07 11:02:00 -07:00
function Address() {
Address.super(this, arguments);
}
2013-07-07 11:02:00 -07:00
Address.parent = parent;
parent.applyEncodingsTo(Address);
2013-07-07 11:02:00 -07:00
Address.prototype.validate = function() {
this.doAsBinary(function() {
Address.super(this, 'validate', arguments);
if(this.data.length !== 21) throw new Error('invalid data length');
});
2014-03-19 14:44:24 -07:00
if (typeof this.network() === 'undefined') throw new Error('invalid network');
};
Address.prototype.isValid = function() {
var answer = Address.super(this, 'isValid', arguments);
2014-03-11 06:21:26 -07:00
return answer;
};
2013-07-07 11:02:00 -07:00
2014-03-14 23:27:06 -07:00
Address.prototype.network = function() {
var version = this.version();
var livenet = networks.livenet;
var testnet = networks.testnet;
var answer;
if (version === livenet.addressPubkey || version === livenet.addressScript)
answer = livenet;
else if (version === testnet.addressPubkey || version === testnet.addressScript)
answer = testnet;
return answer;
};
2014-03-19 12:20:41 -07:00
Address.prototype.isScript = function() {
return this.isValid() && this.version() === this.network().addressScript;
};
module.exports = require('soop')(Address);