Base58check: no longer encodes version separately

This commit is contained in:
Daniel Cousens 2014-06-03 17:02:59 +10:00
parent 63e6cf987f
commit d39662e375
6 changed files with 88 additions and 317 deletions

View file

@ -4,13 +4,11 @@ var base58 = require('./base58')
var crypto = require('./crypto')
// Encode a buffer as a base58-check-encoded string
function encode(payload, version) {
var version = new Buffer([version])
var message = Buffer.concat([version, payload])
var checksum = crypto.hash256(message).slice(0, 4)
function encode(payload) {
var checksum = crypto.hash256(payload).slice(0, 4)
return base58.encode(Buffer.concat([
message,
payload,
checksum
]))
}
@ -19,20 +17,13 @@ function encode(payload, version) {
function decode(string) {
var buffer = base58.decode(string)
var message = buffer.slice(0, -4)
var payload = buffer.slice(0, -4)
var checksum = buffer.slice(-4)
var newChecksum = crypto.hash256(message).slice(0, 4)
var newChecksum = crypto.hash256(payload).slice(0, 4)
assert.deepEqual(newChecksum, checksum, 'Invalid checksum')
var version = message.readUInt8(0)
var payload = message.slice(1)
return {
version: version,
payload: payload,
checksum: checksum
}
return payload
}
module.exports = {