hashtree_cli/webrtc/
types.rs1pub use hashtree_network::{
4 decrement_htl_with_policy, should_forward_htl, validate_mesh_frame, DataChunk, DataMessage,
5 DataPayment, DataPaymentAck, DataQuoteRequest, DataQuoteResponse, DataRequest, DataResponse,
6 HtlMode, HtlPolicy, IceCandidate, MeshNostrFrame, MeshNostrPayload, PeerDirection,
7 PeerHTLConfig, PeerId, PeerPool, PeerStateEvent, PeerStatus, PoolConfig, PoolSettings,
8 RequestDispatchConfig, SelectionStrategy, SignalingMessage, TimedSeenSet, WebRTCConfig,
9 BLOB_REQUEST_POLICY, DECREMENT_AT_MAX_PROB, DECREMENT_AT_MIN_PROB, MAX_HTL, MESH_DEFAULT_HTL,
10 MESH_EVENT_POLICY, MESH_MAX_HTL, MESH_PROTOCOL, MESH_PROTOCOL_VERSION, MSG_TYPE_CHUNK,
11 MSG_TYPE_PAYMENT, MSG_TYPE_PAYMENT_ACK, MSG_TYPE_QUOTE_REQUEST, MSG_TYPE_QUOTE_RESPONSE,
12 MSG_TYPE_REQUEST, MSG_TYPE_RESPONSE,
13};
14
15pub fn decrement_htl(htl: u8, config: &PeerHTLConfig) -> u8 {
16 decrement_htl_with_policy(htl, &BLOB_REQUEST_POLICY, config)
17}
18
19pub fn should_forward(htl: u8) -> bool {
20 should_forward_htl(htl)
21}
22
23pub const WEBRTC_KIND: u64 = hashtree_network::MESH_SIGNALING_EVENT_KIND as u64;
24pub const HELLO_TAG: &str = "hello";
25pub const WEBRTC_TAG: &str = "webrtc";
26
27pub fn encode_request(req: &DataRequest) -> Result<Vec<u8>, rmp_serde::encode::Error> {
28 Ok(hashtree_network::encode_request(req))
29}
30
31pub fn encode_response(res: &DataResponse) -> Result<Vec<u8>, rmp_serde::encode::Error> {
32 Ok(hashtree_network::encode_response(res))
33}
34
35pub fn encode_quote_request(req: &DataQuoteRequest) -> Result<Vec<u8>, rmp_serde::encode::Error> {
36 Ok(hashtree_network::encode_quote_request(req))
37}
38
39pub fn encode_quote_response(res: &DataQuoteResponse) -> Result<Vec<u8>, rmp_serde::encode::Error> {
40 Ok(hashtree_network::encode_quote_response(res))
41}
42
43pub fn encode_payment(req: &DataPayment) -> Result<Vec<u8>, rmp_serde::encode::Error> {
44 Ok(hashtree_network::encode_payment(req))
45}
46
47pub fn encode_payment_ack(res: &DataPaymentAck) -> Result<Vec<u8>, rmp_serde::encode::Error> {
48 Ok(hashtree_network::encode_payment_ack(res))
49}
50
51pub fn encode_chunk(chunk: &DataChunk) -> Result<Vec<u8>, rmp_serde::encode::Error> {
52 Ok(hashtree_network::encode_chunk(chunk))
53}
54
55pub fn parse_message(data: &[u8]) -> Result<DataMessage, rmp_serde::decode::Error> {
56 let msg_type = data.first().copied().unwrap_or_default();
57 hashtree_network::parse_message(data)
58 .ok_or(rmp_serde::decode::Error::LengthMismatch(msg_type as u32))
59}
60
61pub fn hash_to_hex(hash: &[u8]) -> String {
62 hashtree_network::hash_to_key(hash)
63}
64
65pub fn encode_message(msg: &DataMessage) -> Result<Vec<u8>, rmp_serde::encode::Error> {
66 match msg {
67 DataMessage::Request(req) => encode_request(req),
68 DataMessage::Response(res) => encode_response(res),
69 DataMessage::QuoteRequest(req) => encode_quote_request(req),
70 DataMessage::QuoteResponse(res) => encode_quote_response(res),
71 DataMessage::Payment(req) => encode_payment(req),
72 DataMessage::PaymentAck(res) => encode_payment_ack(res),
73 DataMessage::Chunk(chunk) => encode_chunk(chunk),
74 }
75}