fcoin/scripts/dump.js
2017-07-17 14:26:37 -07:00

47 lines
1.1 KiB
JavaScript

'use strict';
const fs = require('fs');
const heapdump = require('heapdump');
const MempoolEntry = require('../lib/mempool/mempoolentry');
const Coins = require('../lib/coins/coins');
const TX = require('../lib/primitives/tx');
const CoinView = require('../lib/coins/coinview');
let SNAPSHOT = __dirname + '/../dump.heapsnapshot';
let tx = parseTX('../test/data/tx4.hex');
let raw, coins, entry;
function parseTX(file) {
let data = fs.readFileSync(__dirname + '/' + file, 'utf8');
let parts = data.trim().split(/\n+/);
let raw = parts[0];
let tx = TX.fromRaw(raw.trim(), 'hex');
let view = new CoinView();
let i, prev;
for (i = 1; i < parts.length; i++) {
raw = parts[i];
prev = TX.fromRaw(raw.trim(), 'hex');
view.addTX(prev, -1);
}
return { tx: tx, view: view };
}
raw = Coins.fromTX(tx.tx, 0).toRaw();
coins = Coins.fromRaw(raw, tx.tx.hash('hex'));
entry = MempoolEntry.fromTX(tx.tx, tx.view, 1000000);
setInterval(() => {
console.log(tx.hash('hex'));
console.log(coins.hash);
console.log(entry.tx);
}, 60 * 1000);
setImmediate(() => {
heapdump.writeSnapshot(SNAPSHOT, (err) => {
if (err)
throw err;
});
});