Browse Source

script_number: refactor

hk-custom-address
Daniel Cousens 9 years ago
parent
commit
945bdfa747
  1. 42
      src/script_number.js

42
src/script_number.js

@ -11,36 +11,36 @@ function decode (buffer, maxLength, minimal) {
} }
} }
// 32-bit? var result
if (length < 5) {
var result = 0
for (var i = 0; i < length; ++i) {
result += buffer[i] << (8 * i)
}
if (buffer[length - 1] & 0x80) return -(result & ~(0x80 << (8 * (length - 1))))
return result
}
// 40-bit // 40-bit
if (length === 5) {
var a = buffer.readUInt32LE(0) var a = buffer.readUInt32LE(0)
var b = buffer.readUInt8(4) var b = buffer.readUInt8(4)
// TODO: refactor if (b & 0x80) return -((b & ~0x80) * 0x100000000 + a)
var neg = false return b * 0x100000000 + a
if (b & 0x80) {
b &= ~0x80 // 32-bit
neg = true } else if (length === 4) {
} result = buffer.readUInt32LE(0)
// 24-bit
} else if (length === 3) {
result = buffer.readUInt16LE(0)
result |= buffer.readUInt8(2) << 16
var r = b * 0x100000000 + a // 16-bit
} else if (length === 2) {
result = buffer.readUInt16LE(0)
if (neg) { // 8-bit
r = -r } else {
result = buffer.readUInt8(0)
} }
return r if (buffer[length - 1] & 0x80) return -(result & ~(0x80 << (8 * (length - 1))))
return result
} }
function scriptNumSize (i) { function scriptNumSize (i) {

Loading…
Cancel
Save