11use alloy:: transports:: { TransportError , TransportErrorKind , TransportFut } ;
22use graph:: components:: network_provider:: ProviderName ;
3- use graph:: endpoint:: { Compression , ConnectionType , EndpointMetrics , RequestLabels } ;
3+ use graph:: endpoint:: { ConnectionType , EndpointMetrics , RequestLabels } ;
44use graph:: prelude:: alloy:: rpc:: json_rpc:: { RequestPacket , ResponsePacket } ;
55use graph:: prelude:: alloy:: transports:: { ipc:: IpcConnect , ws:: WsConnect } ;
66use graph:: prelude:: * ;
@@ -10,6 +10,27 @@ use std::sync::Arc;
1010use std:: task:: { Context , Poll } ;
1111use tower:: Service ;
1212
13+ /// Compression method for RPC requests.
14+ #[ derive( Clone , Copy , Debug , Default , PartialEq , Eq ) ]
15+ pub enum Compression {
16+ #[ default]
17+ None ,
18+ Gzip ,
19+ Brotli ,
20+ Deflate ,
21+ }
22+
23+ impl std:: fmt:: Display for Compression {
24+ fn fmt ( & self , f : & mut std:: fmt:: Formatter < ' _ > ) -> std:: fmt:: Result {
25+ match self {
26+ Compression :: None => write ! ( f, "none" ) ,
27+ Compression :: Gzip => write ! ( f, "gzip" ) ,
28+ Compression :: Brotli => write ! ( f, "brotli" ) ,
29+ Compression :: Deflate => write ! ( f, "deflate" ) ,
30+ }
31+ }
32+ }
33+
1334/// Abstraction over different transport types for Alloy providers.
1435#[ derive( Clone , Debug ) ]
1536pub enum Transport {
@@ -49,12 +70,21 @@ impl Transport {
4970 metrics : Arc < EndpointMetrics > ,
5071 provider : impl AsRef < str > ,
5172 no_eip2718 : bool ,
52- cpmpr : Compression ,
73+ compression : Compression ,
5374 ) -> Self {
5475 let mut client_builder = reqwest:: Client :: builder ( ) . default_headers ( headers) ;
5576
56- if matches ! ( cpmpr, Compression :: Gzip ) {
57- client_builder = client_builder. gzip ( true ) ;
77+ match compression {
78+ Compression :: None => { }
79+ Compression :: Gzip => {
80+ client_builder = client_builder. gzip ( true ) ;
81+ }
82+ Compression :: Brotli => {
83+ client_builder = client_builder. brotli ( true ) ;
84+ }
85+ Compression :: Deflate => {
86+ client_builder = client_builder. deflate ( true ) ;
87+ }
5888 }
5989
6090 let client = client_builder. build ( ) . expect ( "Failed to build HTTP client" ) ;
0 commit comments