@@ -18,125 +18,119 @@ use bitcoin::{
1818
1919use crate :: default_port_from_network;
2020
21- use super :: { error :: PeerError , KYOTO_VERSION , PROTOCOL_VERSION , RUST_BITCOIN_VERSION } ;
21+ use super :: { KYOTO_VERSION , PROTOCOL_VERSION , RUST_BITCOIN_VERSION } ;
2222
2323// Responsible for serializing messages to write over the wire, either encrypted or plaintext.
24- pub ( crate ) struct MessageGenerator {
24+ pub ( in crate :: network ) struct MessageGenerator {
2525 pub network : Network ,
2626 pub transport : Transport ,
2727}
2828
29- pub ( crate ) enum Transport {
29+ pub ( in crate :: network ) enum Transport {
3030 V1 ,
3131 V2 { encryptor : PacketWriter } ,
3232}
3333
3434impl MessageGenerator {
35- fn serialize ( & mut self , msg : NetworkMessage ) -> Result < Vec < u8 > , PeerError > {
35+ pub ( in crate :: network ) fn serialize ( & mut self , msg : NetworkMessage ) -> Vec < u8 > {
3636 match & mut self . transport {
3737 Transport :: V1 => {
3838 let data = RawNetworkMessage :: new ( self . network . magic ( ) , msg) ;
39- Ok ( serialize ( & data) )
39+ serialize ( & data)
4040 }
4141 Transport :: V2 { encryptor } => {
42- let plaintext = serialize_network_message ( msg) ? ;
42+ let plaintext = serialize_network_message ( msg) ;
4343 encrypt_plaintext ( encryptor, plaintext)
4444 }
4545 }
4646 }
4747
48- pub ( crate ) fn version_message ( & mut self , port : Option < u16 > ) -> Result < Vec < u8 > , PeerError > {
48+ pub ( in crate :: network ) fn version_message ( & mut self , port : Option < u16 > ) -> Vec < u8 > {
4949 let msg = NetworkMessage :: Version ( make_version ( port, & self . network ) ) ;
5050 self . serialize ( msg)
5151 }
5252
53- pub ( crate ) fn verack ( & mut self ) -> Result < Vec < u8 > , PeerError > {
53+ pub ( in crate :: network ) fn verack ( & mut self ) -> Vec < u8 > {
5454 let msg = NetworkMessage :: Verack ;
5555 self . serialize ( msg)
5656 }
5757
58- pub ( crate ) fn addr ( & mut self ) -> Result < Vec < u8 > , PeerError > {
58+ pub ( in crate :: network ) fn addr ( & mut self ) -> Vec < u8 > {
5959 let msg = NetworkMessage :: GetAddr ;
6060 self . serialize ( msg)
6161 }
6262
63- pub ( crate ) fn addrv2 ( & mut self ) -> Result < Vec < u8 > , PeerError > {
63+ pub ( in crate :: network ) fn addrv2 ( & mut self ) -> Vec < u8 > {
6464 let msg = NetworkMessage :: SendAddrV2 ;
6565 self . serialize ( msg)
6666 }
6767
68- pub ( crate ) fn wtxid_relay ( & mut self ) -> Result < Vec < u8 > , PeerError > {
68+ pub ( in crate :: network ) fn wtxid_relay ( & mut self ) -> Vec < u8 > {
6969 let msg = NetworkMessage :: WtxidRelay ;
7070 self . serialize ( msg)
7171 }
7272
73- pub ( crate ) fn sendheaders ( & mut self ) -> Result < Vec < u8 > , PeerError > {
73+ pub ( in crate :: network ) fn sendheaders ( & mut self ) -> Vec < u8 > {
7474 let msg = NetworkMessage :: SendHeaders ;
7575 self . serialize ( msg)
7676 }
7777
78- pub ( crate ) fn headers ( & mut self , msg : GetHeadersMessage ) -> Result < Vec < u8 > , PeerError > {
78+ pub ( in crate :: network ) fn headers ( & mut self , msg : GetHeadersMessage ) -> Vec < u8 > {
7979 let msg = NetworkMessage :: GetHeaders ( msg) ;
8080 self . serialize ( msg)
8181 }
8282
83- pub ( crate ) fn cf_headers ( & mut self , message : GetCFHeaders ) -> Result < Vec < u8 > , PeerError > {
83+ pub ( in crate :: network ) fn cf_headers ( & mut self , message : GetCFHeaders ) -> Vec < u8 > {
8484 let msg = NetworkMessage :: GetCFHeaders ( message) ;
8585 self . serialize ( msg)
8686 }
8787
88- pub ( crate ) fn filters ( & mut self , message : GetCFilters ) -> Result < Vec < u8 > , PeerError > {
88+ pub ( in crate :: network ) fn filters ( & mut self , message : GetCFilters ) -> Vec < u8 > {
8989 let msg = NetworkMessage :: GetCFilters ( message) ;
9090 self . serialize ( msg)
9191 }
9292
93- pub ( crate ) fn block ( & mut self , hash : BlockHash ) -> Result < Vec < u8 > , PeerError > {
93+ pub ( in crate :: network ) fn block ( & mut self , hash : BlockHash ) -> Vec < u8 > {
9494 let inv = Inventory :: Block ( hash) ;
9595 let msg = NetworkMessage :: GetData ( vec ! [ inv] ) ;
9696 self . serialize ( msg)
9797 }
9898
99- pub ( crate ) fn ping ( & mut self , nonce : u64 ) -> Result < Vec < u8 > , PeerError > {
99+ pub ( in crate :: network ) fn ping ( & mut self , nonce : u64 ) -> Vec < u8 > {
100100 let msg = NetworkMessage :: Ping ( nonce) ;
101101 self . serialize ( msg)
102102 }
103103
104- pub ( crate ) fn pong ( & mut self , nonce : u64 ) -> Result < Vec < u8 > , PeerError > {
104+ pub ( in crate :: network ) fn pong ( & mut self , nonce : u64 ) -> Vec < u8 > {
105105 let msg = NetworkMessage :: Pong ( nonce) ;
106106 self . serialize ( msg)
107107 }
108108
109- pub ( crate ) fn announce_transactions (
110- & mut self ,
111- wtxids : Vec < Wtxid > ,
112- ) -> Result < Vec < u8 > , PeerError > {
109+ pub ( in crate :: network) fn announce_transactions ( & mut self , wtxids : Vec < Wtxid > ) -> Vec < u8 > {
113110 let msg = NetworkMessage :: Inv ( wtxids. into_iter ( ) . map ( Inventory :: WTx ) . collect ( ) ) ;
114111 self . serialize ( msg)
115112 }
116113
117- pub ( crate ) fn broadcast_transaction (
114+ pub ( in crate :: network ) fn broadcast_transaction (
118115 & mut self ,
119116 transaction : Transaction ,
120- ) -> Result < Vec < u8 > , PeerError > {
117+ ) -> Vec < u8 > {
121118 let msg = NetworkMessage :: Tx ( transaction) ;
122119 self . serialize ( msg)
123120 }
124121}
125122
126- fn serialize_network_message ( message : NetworkMessage ) -> Result < Vec < u8 > , PeerError > {
127- bip324:: serde:: serialize ( message) . map_err ( From :: from )
123+ fn serialize_network_message ( message : NetworkMessage ) -> Vec < u8 > {
124+ bip324:: serde:: serialize ( message) . expect ( "in memory serialiation cannot fail." )
128125}
129126
130- fn encrypt_plaintext (
131- encryptor : & mut PacketWriter ,
132- plaintext : Vec < u8 > ,
133- ) -> Result < Vec < u8 > , PeerError > {
127+ fn encrypt_plaintext ( encryptor : & mut PacketWriter , plaintext : Vec < u8 > ) -> Vec < u8 > {
134128 encryptor
135129 . encrypt_packet ( & plaintext, None , PacketType :: Genuine )
136- . map_err ( From :: from )
130+ . expect ( "encryption to in memory buffer cannot fail." )
137131}
138132
139- fn make_version ( port : Option < u16 > , network : & Network ) -> VersionMessage {
133+ pub ( in crate :: network ) fn make_version ( port : Option < u16 > , network : & Network ) -> VersionMessage {
140134 let now = SystemTime :: now ( )
141135 . duration_since ( UNIX_EPOCH )
142136 . expect ( "time went backwards" )
0 commit comments