@@ -23,7 +23,6 @@ import (
23
23
"fmt"
24
24
"io"
25
25
"net/http"
26
- "net/url"
27
26
"sync"
28
27
"time"
29
28
@@ -112,6 +111,9 @@ type BeaconLightApi struct {
112
111
}
113
112
114
113
func NewBeaconLightApi (url string , customHeaders map [string ]string ) * BeaconLightApi {
114
+ if len (url ) > 0 && url [len (url )- 1 ] == '/' {
115
+ url = url [:len (url )- 1 ]
116
+ }
115
117
return & BeaconLightApi {
116
118
url : url ,
117
119
client : & http.Client {
@@ -122,11 +124,7 @@ func NewBeaconLightApi(url string, customHeaders map[string]string) *BeaconLight
122
124
}
123
125
124
126
func (api * BeaconLightApi ) httpGet (path string ) ([]byte , error ) {
125
- uri , err := api .buildURL (path , nil )
126
- if err != nil {
127
- return nil , err
128
- }
129
- req , err := http .NewRequest ("GET" , uri , nil )
127
+ req , err := http .NewRequest ("GET" , api .url + path , nil )
130
128
if err != nil {
131
129
return nil , err
132
130
}
@@ -551,12 +549,8 @@ func (api *BeaconLightApi) StartHeadListener(listener HeadEventListener) func()
551
549
func (api * BeaconLightApi ) startEventStream (ctx context.Context , listener * HeadEventListener ) * eventsource.Stream {
552
550
for retry := true ; retry ; retry = ctxSleep (ctx , 5 * time .Second ) {
553
551
log .Trace ("Sending event subscription request" )
554
- uri , err := api .buildURL ("/eth/v1/events" , map [string ][]string {"topics" : {"head" , "light_client_finality_update" , "light_client_optimistic_update" }})
555
- if err != nil {
556
- listener .OnError (fmt .Errorf ("error creating event subscription URL: %v" , err ))
557
- continue
558
- }
559
- req , err := http .NewRequestWithContext (ctx , "GET" , uri , nil )
552
+ path := "/eth/v1/events?topics=head&topics=light_client_finality_update&topics=light_client_optimistic_update"
553
+ req , err := http .NewRequestWithContext (ctx , "GET" , api .url + path , nil )
560
554
if err != nil {
561
555
listener .OnError (fmt .Errorf ("error creating event subscription request: %v" , err ))
562
556
continue
@@ -585,15 +579,3 @@ func ctxSleep(ctx context.Context, timeout time.Duration) (ok bool) {
585
579
return false
586
580
}
587
581
}
588
-
589
- func (api * BeaconLightApi ) buildURL (path string , params url.Values ) (string , error ) {
590
- uri , err := url .Parse (api .url )
591
- if err != nil {
592
- return "" , err
593
- }
594
- uri = uri .JoinPath (path )
595
- if params != nil {
596
- uri .RawQuery = params .Encode ()
597
- }
598
- return uri .String (), nil
599
- }
0 commit comments