/// <summary> /// Called whenever a fully parsed message is received from a peer. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void PeerMessageReceived(Peer sender, PeerMessageReceivedArgs e) { switch (e.Message) { case MsgAddr msgAddr: break; case MsgBlock msgBlock: break; case MsgGetAddr msgGetAddr: sender.SendMessage(new MsgAddr { }); break; case MsgGetBlocks msgGetBlocks: break; case MsgGetHeaders msgGetHeaders: break; case MsgGetMiningState msgGetMiningState: break; case MsgPing msgPing: sender.SendMessage(new MsgPong { Nonce = msgPing.Nonce }); break; case MsgPong msgPong: break; case MsgReject msgReject: break; case MsgTx msgTx: break; case MsgVerAck msgVerAck: Peers.Add(sender); break; case MsgVersion msgVersion: break; } }
protected virtual void OnMessageReceived(PeerMessageReceivedArgs e) { MessageReceived?.Invoke(this, e); }