From 1f47d5ead5525e0e7ac74dea15bf9dfb284c71fe Mon Sep 17 00:00:00 2001 From: Christopher Jeffrey Date: Fri, 2 Dec 2016 12:06:57 -0800 Subject: [PATCH] workers: client and server parser refactor. --- lib/workers/master.js | 1 - lib/workers/parser-client.js | 34 ++++++++++++++++++++++++++++++---- lib/workers/parser.js | 22 ++-------------------- 3 files changed, 32 insertions(+), 25 deletions(-) diff --git a/lib/workers/master.js b/lib/workers/master.js index 1afe806e..300fbb9d 100644 --- a/lib/workers/master.js +++ b/lib/workers/master.js @@ -9,7 +9,6 @@ var EventEmitter = require('events').EventEmitter; var util = require('../utils/util'); -var global = util.global; var Network = require('../protocol/network'); var jobs = require('./jobs'); var Parser = require('./parser-client'); diff --git a/lib/workers/parser-client.js b/lib/workers/parser-client.js index 0afec599..0c0d77dd 100644 --- a/lib/workers/parser-client.js +++ b/lib/workers/parser-client.js @@ -8,6 +8,7 @@ 'use strict'; var util = require('../utils/util'); +var packets = require('./packets'); var ServerParser = require('./parser'); var MTX = require('../primitives/mtx'); var TX = require('../primitives/tx'); @@ -23,14 +24,39 @@ function Parser() { return new Parser(); ServerParser.call(this); - - this.TX = TX; - this.MTX = MTX; - this.KeyRing = KeyRing; } util.inherits(Parser, ServerParser); +Parser.prototype.parsePacket = function parsePacket(header, data) { + switch (header.cmd) { + case packets.types.EVENT: + return packets.EventPacket.fromRaw(data); + case packets.types.LOG: + return packets.LogPacket.fromRaw(data); + case packets.types.ERROR: + return packets.ErrorPacket.fromRaw(data); + case packets.types.VERIFY: + return packets.VerifyPacket.fromRaw(TX, data); + case packets.types.SIGN: + return packets.SignPacket.fromRaw(MTX, KeyRing, data); + case packets.types.VERIFYINPUT: + return packets.VerifyInputPacket.fromRaw(TX, data); + case packets.types.SIGNINPUT: + return packets.SignInputPacket.fromRaw(MTX, KeyRing, data); + case packets.types.ECVERIFY: + return packets.ECVerifyPacket.fromRaw(data); + case packets.types.ECSIGN: + return packets.ECSignPacket.fromRaw(data); + case packets.types.MINE: + return packets.MinePacket.fromRaw(data); + case packets.types.SCRYPT: + return packets.ScryptPacket.fromRaw(data); + default: + throw new Error('Unknown packet.'); + } +}; + /* * Expose */ diff --git a/lib/workers/parser.js b/lib/workers/parser.js index ea44f841..aab56fda 100644 --- a/lib/workers/parser.js +++ b/lib/workers/parser.js @@ -27,10 +27,6 @@ function Parser() { this.header = null; this.pending = []; this.total = 0; - - this.TX = null; - this.MTX = null; - this.KeyRing = null; } util.inherits(Parser, EventEmitter); @@ -144,36 +140,22 @@ Parser.prototype.parsePacket = function parsePacket(header, data) { return packets.LogPacket.fromRaw(data); case packets.types.ERROR: return packets.ErrorPacket.fromRaw(data); - case packets.types.VERIFY: - return packets.VerifyPacket.fromRaw(this.TX, data); + case packets.types.ERRORRESULT: + return packets.ErrorResultPacket.fromRaw(data); case packets.types.VERIFYRESULT: return packets.VerifyResultPacket.fromRaw(data); - case packets.types.SIGN: - return packets.SignPacket.fromRaw(this.MTX, this.KeyRing, data); case packets.types.SIGNRESULT: return packets.SignResultPacket.fromRaw(data); - case packets.types.VERIFYINPUT: - return packets.VerifyInputPacket.fromRaw(this.TX, data); case packets.types.VERIFYINPUTRESULT: return packets.VerifyInputResultPacket.fromRaw(data); - case packets.types.SIGNINPUT: - return packets.SignInputPacket.fromRaw(this.MTX, this.KeyRing, data); case packets.types.SIGNINPUTRESULT: return packets.SignInputResultPacket.fromRaw(data); - case packets.types.ECVERIFY: - return packets.ECVerifyPacket.fromRaw(data); case packets.types.ECVERIFYRESULT: return packets.ECVerifyResultPacket.fromRaw(data); - case packets.types.ECSIGN: - return packets.ECSignPacket.fromRaw(data); case packets.types.ECSIGNRESULT: return packets.ECSignResultPacket.fromRaw(data); - case packets.types.MINE: - return packets.MinePacket.fromRaw(data); case packets.types.MINERESULT: return packets.MineResultPacket.fromRaw(data); - case packets.types.SCRYPT: - return packets.ScryptPacket.fromRaw(data); case packets.types.SCRYPTRESULT: return packets.ScryptResultPacket.fromRaw(data); default: