You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

66 lines
1.8 KiB

var assert = require('assert')
var Address = require('..').Address
var ECPubKey = require('..').ECPubKey
var base58check = require('..').base58check
var fixtures = require('./fixtures/address')
describe('Address', function() {
var bothVectors = fixtures.pubKeyHash.concat(fixtures.scriptHash)
describe('Constructor', function() {
it('matches the test vectors', function() {
bothVectors.forEach(function(f) {
var hash = new Buffer(f.hex, 'hex')
var addr = new Address(hash, f.version)
assert.equal(addr.version, f.version)
assert.equal(addr.hash.toString('hex'), f.hex)
})
})
})
describe('fromBase58Check', function() {
it('throws on invalid base58check', function() {
fixtures.malformed.forEach(function(f) {
assert.throws(function() {
Address.fromBase58Check(f.base58check)
})
})
})
it('output matches the test vectors', function() {
bothVectors.forEach(function(f) {
var addr = Address.fromBase58Check(f.base58check)
assert.equal(addr.version, f.version)
assert.equal(addr.hash.toString('hex'), f.hex)
})
})
})
describe('fromPubKey', function() {
it('output matches the test vectors', function() {
fixtures.pubKeyHash.forEach(function(f) {
var pub = ECPubKey.fromBuffer(new Buffer(f.pubKey, 'hex'))
var addr = Address.fromPubKey(pub, f.version)
assert.equal(addr.version, f.version)
assert.equal(addr.hash.toString('hex'), f.hex)
})
})
})
describe('toBase58Check', function() {
it('output matches the test vectors', function() {
bothVectors.forEach(function(f) {
var addr = Address.fromBase58Check(f.base58check)
var base58check = addr.toBase58Check()
assert.equal(base58check, f.base58check)
})
})
})
})