decode: function (consume) { var flagsBuffer = consume(1)[0] if (typeof flagsBuffer === 'undefined') throw new Error('No flags are found') var output = new Buffer([flagsBuffer & (~flagMask)]) var flags = flagsBuffer & flagMask var skip = !!(flags & skipFlag) var range = !!(flags & rangeFlag) var percent = !!(flags & percentFlag) if (range) { output = Buffer.concat([output, consume(1)]) } var amount = sffc.decode(consume) return {skip: skip, range: range, percent: percent, output: parseInt(output.toString('hex'), 16), amount: amount} },
var decodeAmountByVersion = function (version, consume, divisibility) { var decodedAmount = sffc.decode(consume) return (version == 0x01)? (decodedAmount / Math.pow(10, divisibility)) : decodedAmount }