Skip to content

Commit 9558739

Browse files
committed
Export connection helpers
1 parent 8ff6a1b commit 9558739

File tree

2 files changed

+22
-6
lines changed

2 files changed

+22
-6
lines changed

sdk/extern.go

+20-4
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,22 @@ package sdk
22

33
import (
44
"context"
5+
"log"
56
"net/http"
67

78
"github.com/ethereum/go-ethereum/ethclient"
89
ethrpc "github.com/ethereum/go-ethereum/rpc"
910
"github.com/filecoin-project/go-jsonrpc"
1011
lotusapi "github.com/filecoin-project/lotus/api"
1112
"github.com/glifio/go-pools/rpc"
13+
"github.com/gorilla/websocket"
1214
)
1315

1416
func (c *fevmExtern) ConnectEthClient() (*ethclient.Client, error) {
15-
return connectEthClient(c.dialAddr, c.token)
17+
return ConnectEthClient(c.dialAddr, c.token)
1618
}
1719

18-
func connectEthClient(dialAddr string, token string) (*ethclient.Client, error) {
20+
func ConnectEthClient(dialAddr string, token string) (*ethclient.Client, error) {
1921
if token == "" {
2022
return ethclient.Dial(dialAddr)
2123
}
@@ -34,11 +36,25 @@ func connectEthClient(dialAddr string, token string) (*ethclient.Client, error)
3436
return ethclient.NewClient(client), nil
3537
}
3638

39+
func ConnectEthClientWS(dialAddr string, token string) (*ethclient.Client, error) {
40+
41+
tokenHeader := ethrpc.WithHeader("Authorization", "Bearer "+token)
42+
httpClient := ethrpc.WithWebsocketDialer(websocket.Dialer{})
43+
44+
client, err := ethrpc.DialOptions(context.Background(), dialAddr, httpClient, tokenHeader)
45+
if err != nil {
46+
log.Println("error dialing eth client", err)
47+
return nil, err
48+
}
49+
50+
return ethclient.NewClient(client), nil
51+
}
52+
3753
func (c *fevmExtern) ConnectLotusClient() (*lotusapi.FullNodeStruct, jsonrpc.ClientCloser, error) {
38-
return connectLotusClient(c.dialAddr, c.token)
54+
return ConnectLotusClient(c.dialAddr, c.token)
3955
}
4056

41-
func connectLotusClient(lotusDialAddr string, lotusToken string) (*lotusapi.FullNodeStruct, jsonrpc.ClientCloser, error) {
57+
func ConnectLotusClient(lotusDialAddr string, lotusToken string) (*lotusapi.FullNodeStruct, jsonrpc.ClientCloser, error) {
4258
head := http.Header{}
4359

4460
if lotusToken != "" {

sdk/init.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ func New(
184184
extern types.Extern,
185185
) (types.PoolsSDK, error) {
186186
var sdk types.PoolsSDK
187-
ethClient, err := connectEthClient(extern.LotusDialAddr, extern.LotusToken)
187+
ethClient, err := ConnectEthClient(extern.LotusDialAddr, extern.LotusToken)
188188
if err != nil {
189189
return nil, err
190190
}
@@ -248,7 +248,7 @@ func Init(
248248
token string,
249249
eventsURL string,
250250
) error {
251-
client, err := connectEthClient(dialAddr, token)
251+
client, err := ConnectEthClient(dialAddr, token)
252252
if err != nil {
253253
return err
254254
}

0 commit comments

Comments
 (0)