Parcourir la source

ethclient: add DialContext and Close (#16318)

DialContext allows users to pass a Context object for cancellation.
Close closes the underlying RPC connection.
Lorenzo Manacorda il y a 7 ans
Parent
commit
b15eb665ee
1 fichiers modifiés avec 9 ajouts et 1 suppressions
  1. 9 1
      ethclient/ethclient.go

+ 9 - 1
ethclient/ethclient.go

@@ -39,7 +39,11 @@ type Client struct {
 
 // Dial connects a client to the given URL.
 func Dial(rawurl string) (*Client, error) {
-	c, err := rpc.Dial(rawurl)
+	return DialContext(context.Background(), rawurl)
+}
+
+func DialContext(ctx context.Context, rawurl string) (*Client, error) {
+	c, err := rpc.DialContext(ctx, rawurl)
 	if err != nil {
 		return nil, err
 	}
@@ -51,6 +55,10 @@ func NewClient(c *rpc.Client) *Client {
 	return &Client{c}
 }
 
+func (ec *Client) Close() {
+	ec.c.Close()
+}
+
 // Blockchain Access
 
 // BlockByHash returns the given full block.