90711efb0a
This adds a generic mechanism for 'dial options' in the RPC client, and also implements a specific dial option for the JWT authentication mechanism used by the engine API. Some real tests for the server-side authentication handling are also added. Co-authored-by: Joshua Gutow <jgutow@optimism.io> Co-authored-by: Felix Lange <fjl@twurst.com>
26 lines
587 B
Go
26 lines
587 B
Go
package rpc_test
|
|
|
|
import (
|
|
"context"
|
|
"net/http"
|
|
"time"
|
|
|
|
"github.com/ethereum/go-ethereum/rpc"
|
|
)
|
|
|
|
// This example configures a HTTP-based RPC client with two options - one setting the
|
|
// overall request timeout, the other adding a custom HTTP header to all requests.
|
|
func ExampleDialOptions() {
|
|
tokenHeader := rpc.WithHeader("x-token", "foo")
|
|
httpClient := rpc.WithHTTPClient(&http.Client{
|
|
Timeout: 10 * time.Second,
|
|
})
|
|
|
|
ctx := context.Background()
|
|
c, err := rpc.DialOptions(ctx, "http://rpc.example.com", httpClient, tokenHeader)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
c.Close()
|
|
}
|