diff --git a/lib/coins/coinentry.js b/lib/coins/coinentry.js index 1e991054..1e19bf72 100644 --- a/lib/coins/coinentry.js +++ b/lib/coins/coinentry.js @@ -7,12 +7,12 @@ 'use strict'; const assert = require('assert'); +const Coin = require('../primitives/coin'); const Output = require('../primitives/output'); const BufferReader = require('../utils/reader'); const StaticWriter = require('../utils/staticwriter'); const encoding = require('../utils/encoding'); -const Coin = require('../primitives/coin'); -const {compress, decompress} = require('../coins/compress'); +const compress = require('./compress'); /** * Represents an unspent output. @@ -188,7 +188,7 @@ CoinEntry.prototype.toWriter = function toWriter(bw) { bw.writeVarint(this.version); bw.writeU32(field); - compress.output(this.output, bw); + compress.pack(this.output, bw); return bw; }; @@ -236,7 +236,7 @@ CoinEntry.prototype.fromReader = function fromReader(br) { this.coinbase = (flags & 1) !== 0; this.height = height; - decompress.output(this.output, br); + compress.unpack(this.output, br); return this; }; diff --git a/lib/coins/compress.js b/lib/coins/compress.js index 658fc8e3..7bd38cec 100644 --- a/lib/coins/compress.js +++ b/lib/coins/compress.js @@ -186,63 +186,6 @@ function sizeOutput(output) { return size; } -/** - * Compress an output. - * @param {Coin} coin - * @param {BufferWriter} bw - */ - -function compressCoin(coin, bw) { - bw.writeVarint(coin.value); - compressScript(coin.script, bw); - return bw; -} - -/** - * Decompress a script from buffer reader. - * @param {Coin} coin - * @param {BufferReader} br - */ - -function decompressCoin(coin, br) { - coin.value = br.readVarint(); - decompressScript(coin.script, br); - return coin; -} - -/** - * Skip past a compressed output. - * @param {BufferWriter} bw - * @returns {Number} - */ - -function skipOutput(br) { - let start = br.offset; - - // Skip past the value. - br.skipVarint(); - - // Skip past the compressed scripts. - switch (br.readU8()) { - case 0: - case 1: - br.seek(20); - break; - case 2: - case 3: - case 4: - case 5: - br.seek(32); - break; - default: - br.offset -= 1; - br.seek(br.readVarint() - COMPRESS_TYPES); - break; - } - - return br.offset - start; -} - /** * Compress value using an exponent. Takes advantage of * the fact that many bitcoin values are divisible by 10. @@ -400,20 +343,6 @@ function decompressKey(key) { * Expose */ -exports.compress = { - output: compressOutput, - coin: compressCoin, - size: sizeOutput, - script: compressScript, - value: compressValue, - key: compressKey -}; - -exports.decompress = { - output: decompressOutput, - coin: decompressCoin, - skip: skipOutput, - script: decompressScript, - value: decompressValue, - key: decompressKey -}; +exports.pack = compressOutput; +exports.unpack = decompressOutput; +exports.size = sizeOutput;