Ryan X. Charles
11 years ago
2 changed files with 124 additions and 1 deletions
@ -1,2 +1,40 @@ |
|||||
var bs58 = require('bs58'); |
var bs58 = require('bs58'); |
||||
module.exports = bs58; |
|
||||
|
var Base58 = function Base58(buf) { |
||||
|
if (!(this instanceof Base58)) |
||||
|
return new Base58(buf); |
||||
|
this.buf = buf; |
||||
|
}; |
||||
|
|
||||
|
Base58.encode = function(buf) { |
||||
|
if (!Buffer.isBuffer(buf)) |
||||
|
throw new Error('Input should be a buffer'); |
||||
|
return bs58.encode(buf); |
||||
|
}; |
||||
|
|
||||
|
Base58.decode = function(str) { |
||||
|
if (typeof str !== 'string') |
||||
|
throw new Error('Input should be a string'); |
||||
|
return bs58.decode(str); |
||||
|
}; |
||||
|
|
||||
|
Base58.prototype.fromBuffer = function(buf) { |
||||
|
this.buf = buf; |
||||
|
return this; |
||||
|
}; |
||||
|
|
||||
|
Base58.prototype.fromString = function(str) { |
||||
|
var buf = Base58.decode(str); |
||||
|
this.buf = buf; |
||||
|
return this; |
||||
|
}; |
||||
|
|
||||
|
Base58.prototype.toBuffer = function() { |
||||
|
return this.buf; |
||||
|
}; |
||||
|
|
||||
|
Base58.prototype.toString = function() { |
||||
|
return Base58.encode(this.buf); |
||||
|
}; |
||||
|
|
||||
|
module.exports = Base58; |
||||
|
@ -0,0 +1,85 @@ |
|||||
|
var Base58 = require('../lib/base58'); |
||||
|
var should = require('chai').should(); |
||||
|
|
||||
|
describe('Base58', function() { |
||||
|
var buf = new Buffer([0, 1, 2, 3, 253, 254, 255]); |
||||
|
var enc = "1W7N4RuG"; |
||||
|
|
||||
|
it('should make an instance with "new"', function() { |
||||
|
var b58 = new Base58(); |
||||
|
should.exist(b58); |
||||
|
}); |
||||
|
|
||||
|
it('should make an instance without "new"', function() { |
||||
|
var b58 = Base58(); |
||||
|
should.exist(b58); |
||||
|
}); |
||||
|
|
||||
|
describe('#encode', function() { |
||||
|
|
||||
|
it('should encode the buffer accurately', function() { |
||||
|
Base58.encode(buf).should.equal(enc); |
||||
|
}); |
||||
|
|
||||
|
it('should throw an error when the Input is not a buffer', function() { |
||||
|
(function() { |
||||
|
Base58.encode("string") |
||||
|
}).should.throw('Input should be a buffer'); |
||||
|
}); |
||||
|
|
||||
|
}); |
||||
|
|
||||
|
describe('#decode', function() { |
||||
|
|
||||
|
it('should decode this encoded value correctly', function() { |
||||
|
Base58.decode(enc).toString('hex').should.equal(buf.toString('hex')); |
||||
|
}); |
||||
|
|
||||
|
it('should throw an error when Input is not a string', function() { |
||||
|
(function() { |
||||
|
Base58.decode(5); |
||||
|
}).should.throw('Input should be a string'); |
||||
|
}); |
||||
|
|
||||
|
}); |
||||
|
|
||||
|
describe('#fromBuffer', function() { |
||||
|
|
||||
|
it('should not fail', function() { |
||||
|
should.exist(Base58().fromBuffer(buf)); |
||||
|
}); |
||||
|
|
||||
|
it('should set buffer', function() { |
||||
|
var b58 = Base58().fromBuffer(buf); |
||||
|
b58.buf.toString('hex').should.equal(buf.toString('hex')); |
||||
|
}); |
||||
|
|
||||
|
}); |
||||
|
|
||||
|
describe('#fromString', function() { |
||||
|
|
||||
|
it('should convert this known string to a buffer', function() { |
||||
|
Base58().fromString(enc).toBuffer().toString('hex').should.equal(buf.toString('hex')); |
||||
|
}); |
||||
|
|
||||
|
}); |
||||
|
|
||||
|
describe('#toBuffer', function() { |
||||
|
|
||||
|
it('should return the buffer', function() { |
||||
|
var b58 = Base58(buf); |
||||
|
b58.buf.toString('hex').should.equal(buf.toString('hex')); |
||||
|
}); |
||||
|
|
||||
|
}); |
||||
|
|
||||
|
describe('#toString', function() { |
||||
|
|
||||
|
it('should return the buffer', function() { |
||||
|
var b58 = Base58(buf); |
||||
|
b58.toString().should.equal(enc); |
||||
|
}); |
||||
|
|
||||
|
}); |
||||
|
|
||||
|
}); |
Loading…
Reference in new issue