- Add GETTING_STARTED.md with quick start guide and development modes - Add INSTALL.sh automated installation script - Add INSTALLATION_CHECKLIST.md, INSTALLATION_SUCCESS.md, and INSTALLATION_SUMMARY.md - Add QUICK_REFERENCE.md for common commands - Add SETUP_GUIDE.md with detailed setup instructions - Update README.md with improved project overview - Add did-wallet app dependencies and node_modules
31 lines
595 B
JavaScript
31 lines
595 B
JavaScript
module.exports = encode
|
|
|
|
var MSB = 0x80
|
|
, REST = 0x7F
|
|
, MSBALL = ~REST
|
|
, INT = Math.pow(2, 31)
|
|
|
|
function encode(num, out, offset) {
|
|
if (Number.MAX_SAFE_INTEGER && num > Number.MAX_SAFE_INTEGER) {
|
|
encode.bytes = 0
|
|
throw new RangeError('Could not encode varint')
|
|
}
|
|
out = out || []
|
|
offset = offset || 0
|
|
var oldOffset = offset
|
|
|
|
while(num >= INT) {
|
|
out[offset++] = (num & 0xFF) | MSB
|
|
num /= 128
|
|
}
|
|
while(num & MSBALL) {
|
|
out[offset++] = (num & 0xFF) | MSB
|
|
num >>>= 7
|
|
}
|
|
out[offset] = num | 0
|
|
|
|
encode.bytes = offset - oldOffset + 1
|
|
|
|
return out
|
|
}
|