Beta 7 with some repo names changed.
This commit is contained in:
1 parent
0f7b40cca7
commit
963c19493a
3408 files changed
+462217
-15516
No files matched your search
+50
@@ -0,0 +1,50 @@
|
||||
'use strict'
|
||||
|
||||
var base58 = require('bs58')
|
||||
var Buffer = require('safe-buffer').Buffer
|
||||
|
||||
module.exports = function (checksumFn) {
|
||||
// Encode a buffer as a base58-check encoded string
|
||||
function encode (payload) {
|
||||
var checksum = checksumFn(payload)
|
||||
|
||||
return base58.encode(Buffer.concat([
|
||||
payload,
|
||||
checksum
|
||||
], payload.length + 4))
|
||||
}
|
||||
|
||||
function decodeRaw (buffer) {
|
||||
var payload = buffer.slice(0, -4)
|
||||
var checksum = buffer.slice(-4)
|
||||
var newChecksum = checksumFn(payload)
|
||||
|
||||
if (checksum[0] ^ newChecksum[0] |
|
||||
checksum[1] ^ newChecksum[1] |
|
||||
checksum[2] ^ newChecksum[2] |
|
||||
checksum[3] ^ newChecksum[3]) return
|
||||
|
||||
return payload
|
||||
}
|
||||
|
||||
// Decode a base58-check encoded string to a buffer, no result if checksum is wrong
|
||||
function decodeUnsafe (string) {
|
||||
var buffer = base58.decodeUnsafe(string)
|
||||
if (!buffer) return
|
||||
|
||||
return decodeRaw(buffer)
|
||||
}
|
||||
|
||||
function decode (string) {
|
||||
var buffer = base58.decode(string)
|
||||
var payload = decodeRaw(buffer, checksumFn)
|
||||
if (!payload) throw new Error('Invalid checksum')
|
||||
return payload
|
||||
}
|
||||
|
||||
return {
|
||||
encode: encode,
|
||||
decode: decode,
|
||||
decodeUnsafe: decodeUnsafe
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user