Add verack, ping, pong serialization.
This commit is contained in:
parent
3b51056857
commit
9fe8f22a84
|
@ -93,13 +93,16 @@ pub enum Message {
|
||||||
/// A `ping` message.
|
/// A `ping` message.
|
||||||
///
|
///
|
||||||
/// [Bitcoin reference](https://en.bitcoin.it/wiki/Protocol_documentation#ping)
|
/// [Bitcoin reference](https://en.bitcoin.it/wiki/Protocol_documentation#ping)
|
||||||
Ping(Nonce),
|
Ping(
|
||||||
|
/// A nonce unique to this [`Ping`] message.
|
||||||
|
Nonce,
|
||||||
|
),
|
||||||
|
|
||||||
/// A `pong` message.
|
/// A `pong` message.
|
||||||
///
|
///
|
||||||
/// [Bitcoin reference](https://en.bitcoin.it/wiki/Protocol_documentation#pong)
|
/// [Bitcoin reference](https://en.bitcoin.it/wiki/Protocol_documentation#pong)
|
||||||
Pong(
|
Pong(
|
||||||
/// The nonce from the `Ping` message this was in response to.
|
/// The nonce from the [`Ping`] message this was in response to.
|
||||||
Nonce,
|
Nonce,
|
||||||
),
|
),
|
||||||
|
|
||||||
|
@ -450,6 +453,13 @@ impl Message {
|
||||||
writer.write_u32::<LittleEndian>(start_height.0)?;
|
writer.write_u32::<LittleEndian>(start_height.0)?;
|
||||||
writer.write_u8(*relay as u8)?;
|
writer.write_u8(*relay as u8)?;
|
||||||
}
|
}
|
||||||
|
Verack => { /* Empty payload -- no-op */ }
|
||||||
|
Ping(nonce) => {
|
||||||
|
writer.write_u64::<LittleEndian>(nonce.0)?;
|
||||||
|
}
|
||||||
|
Pong(nonce) => {
|
||||||
|
writer.write_u64::<LittleEndian>(nonce.0)?;
|
||||||
|
}
|
||||||
_ => unimplemented!(),
|
_ => unimplemented!(),
|
||||||
}
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
|
@ -487,21 +497,21 @@ fn try_read_verack<R: io::Read>(
|
||||||
mut _reader: R,
|
mut _reader: R,
|
||||||
_version: Version,
|
_version: Version,
|
||||||
) -> Result<Message, SerializationError> {
|
) -> Result<Message, SerializationError> {
|
||||||
unimplemented!()
|
Ok(Message::Verack)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn try_read_ping<R: io::Read>(
|
fn try_read_ping<R: io::Read>(
|
||||||
mut _reader: R,
|
mut reader: R,
|
||||||
_version: Version,
|
_version: Version,
|
||||||
) -> Result<Message, SerializationError> {
|
) -> Result<Message, SerializationError> {
|
||||||
unimplemented!()
|
Ok(Message::Ping(Nonce(reader.read_u64::<LittleEndian>()?)))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn try_read_pong<R: io::Read>(
|
fn try_read_pong<R: io::Read>(
|
||||||
mut _reader: R,
|
mut reader: R,
|
||||||
_version: Version,
|
_version: Version,
|
||||||
) -> Result<Message, SerializationError> {
|
) -> Result<Message, SerializationError> {
|
||||||
unimplemented!()
|
Ok(Message::Pong(Nonce(reader.read_u64::<LittleEndian>()?)))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn try_read_reject<R: io::Read>(
|
fn try_read_reject<R: io::Read>(
|
||||||
|
|
Loading…
Reference in New Issue