From 6699e622e6cc20b5cb111b1ca018cff157134843 Mon Sep 17 00:00:00 2001 From: rsercano Date: Tue, 27 Oct 2020 14:49:52 +0300 Subject: [PATCH] fix: alias missing in streamorders (#1725) --- lib/grpc/GrpcService.ts | 1 + lib/orderbook/types.ts | 4 +++- lib/p2p/Pool.ts | 4 ++-- lib/service/Service.ts | 11 +++++++++-- test/utils.ts | 2 ++ 5 files changed, 17 insertions(+), 5 deletions(-) diff --git a/lib/grpc/GrpcService.ts b/lib/grpc/GrpcService.ts index 79a0f75ff..71815d2d6 100644 --- a/lib/grpc/GrpcService.ts +++ b/lib/grpc/GrpcService.ts @@ -53,6 +53,7 @@ const createOrder = (order: Order) => { } else { const nodeIdentifier = new xudrpc.NodeIdentifier(); nodeIdentifier.setNodePubKey(order.peerPubKey); + nodeIdentifier.setAlias(order.alias); grpcOrder.setNodeIdentifier(nodeIdentifier); grpcOrder.setIsOwnOrder(false); } diff --git a/lib/orderbook/types.ts b/lib/orderbook/types.ts index 1daab9440..835407c80 100644 --- a/lib/orderbook/types.ts +++ b/lib/orderbook/types.ts @@ -67,7 +67,9 @@ type Local = { /** Properties that apply only to orders placed by remote peers. */ type Remote = { /** The nodePubKey of the node which created this order. */ - peerPubKey: string; + peerPubKey: string, + /** The alias of the node which created this order. */ + alias: string; }; /** Properties that uniquely identify an order and make it ready to enter the order book. */ diff --git a/lib/p2p/Pool.ts b/lib/p2p/Pool.ts index 353e6e183..7d2de7494 100644 --- a/lib/p2p/Pool.ts +++ b/lib/p2p/Pool.ts @@ -780,7 +780,7 @@ class Pool extends EventEmitter { this.emit('packet.orderInvalidation', orderInvalidation, peer.nodePubKey!); } - const incomingOrder: IncomingOrder = { ...receivedOrder, peerPubKey: peer.nodePubKey! }; + const incomingOrder: IncomingOrder = { ...receivedOrder, peerPubKey: peer.nodePubKey!, alias: peer.alias! }; this.emit('packet.order', incomingOrder); } else { this.logger.debug(`received order ${id} for deactivated trading pair`); @@ -809,7 +809,7 @@ class Pool extends EventEmitter { this.logger.debug(`received ${receivedOrders.length} orders from ${peer.label}`); receivedOrders.forEach((order) => { if (peer.isPairActive(order.pairId)) { - this.emit('packet.order', { ...order, peerPubKey: peer.nodePubKey! }); + this.emit('packet.order', { ...order, peerPubKey: peer.nodePubKey!, alias: peer.alias! }); } else { this.logger.debug(`received order ${order.id} for deactivated trading pair`); } diff --git a/lib/service/Service.ts b/lib/service/Service.ts index bdb0e9887..572aba38e 100644 --- a/lib/service/Service.ts +++ b/lib/service/Service.ts @@ -694,13 +694,20 @@ class Service extends EventEmitter { cancelled$: Observable, ) => { if (args.existing) { + function setAlias(pool: Pool) { + return (order: PeerOrder) => { + order.alias = pool.getNodeAlias(order.peerPubKey)!; + callback(order); + }; + } + this.orderBook.pairIds.forEach((pair) => { const ownOrders = this.orderBook.getOwnOrders(pair); const peerOrders = this.orderBook.getPeersOrders(pair); ownOrders.buyArray.forEach(order => callback(order)); - peerOrders.buyArray.forEach(order => callback(order)); + peerOrders.buyArray.forEach(setAlias(this.pool)); ownOrders.sellArray.forEach(order => callback(order)); - peerOrders.sellArray.forEach(order => callback(order)); + peerOrders.sellArray.forEach(setAlias(this.pool)); }); } diff --git a/test/utils.ts b/test/utils.ts index 0ab184b3f..054d762d8 100644 --- a/test/utils.ts +++ b/test/utils.ts @@ -79,6 +79,7 @@ export const createPeerOrder = ( isBuy: boolean, createdAt = ms(), peerPubKey = '029a96c975d301c1c8787fcb4647b5be65a3b8d8a70153ff72e3eac73759e5e345', + alias = 'test_alias', pairId = 'LTC/BTC', ): PeerOrder => ({ quantity, @@ -87,6 +88,7 @@ export const createPeerOrder = ( pairId, createdAt, peerPubKey, + alias, initialQuantity: quantity, id: uuidv1(), });