@@ -2,10 +2,16 @@ package ethproviders_test
22
33import (
44 "context"
5+ "fmt"
56 "math/big"
7+ "net/http"
8+ "os"
69 "testing"
710
811 "github.com/0xsequence/ethkit/ethproviders"
12+ "github.com/0xsequence/ethkit/ethrpc"
13+ "github.com/go-chi/traceid"
14+ "github.com/go-chi/transport"
915 "github.com/stretchr/testify/require"
1016)
1117
@@ -17,7 +23,46 @@ func TestBasic(t *testing.T) {
1723 },
1824 }
1925
20- ps , err := ethproviders .NewProviders (cfg ) //, "xx")
26+ ps , err := ethproviders .NewProviders (cfg )
27+ require .NoError (t , err )
28+ p := ps .Get ("polygon" )
29+ require .NotNil (t , p )
30+
31+ block , err := p .BlockByNumber (context .Background (), big .NewInt (1_000_000 ))
32+ require .NoError (t , err )
33+ require .NotNil (t , block )
34+ require .Equal (t , uint64 (1_000_000 ), block .NumberU64 ())
35+ }
36+
37+ func TestClientWithJWTAuth (t * testing.T ) {
38+ // NODE_URL="https://dev-nodes.sequence.app"
39+ // JWT_TOKEN=$(jwtutil -secret=changemenow -encode -claims='{"service":"test"}' 2>/dev/null)
40+
41+ nodeURL := os .Getenv ("NODE_URL" )
42+ jwtToken := os .Getenv ("JWT_TOKEN" )
43+
44+ if jwtToken == "" || nodeURL == "" {
45+ t .Skip ("NODE_URL or JWT_TOKEN is not set" )
46+ }
47+
48+ cfg := ethproviders.Config {
49+ "polygon" : ethproviders.NetworkConfig {
50+ ID : 137 ,
51+ URL : fmt .Sprintf ("%s/polygon" , nodeURL ),
52+ },
53+ }
54+
55+ httpClient := & http.Client {
56+ Transport : transport .Chain (http .DefaultTransport ,
57+ traceid .Transport ,
58+ transport .SetHeaderFunc ("Authorization" , func (req * http.Request ) string {
59+ return "BEARER " + jwtToken
60+ }),
61+ transport .LogRequests (transport.LogOptions {Concise : true , CURL : true }),
62+ ),
63+ }
64+
65+ ps , err := ethproviders .NewProviders (cfg , ethrpc .WithHTTPClient (httpClient ))
2166 require .NoError (t , err )
2267 p := ps .Get ("polygon" )
2368 require .NotNil (t , p )
0 commit comments