Documentation ¶
Overview ¶
Package proxy proxies rpc request to the best rpc node
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BodyReader ¶
type BodyReader interface { io.ReadCloser }
BodyReader is used for generating a mock of the request body that returns an error
type ErrorResponse ¶ added in v0.0.9
type ErrorResponse struct { Hashes map[string][]ErroredRPCResponse `json:"hashes"` Error string `json:"error"` // ErroredURLS returned no response at all ErroredURLS []string `json:"errored_urls"` }
ErrorResponse contains error response used for debugging.
type ErroredRPCResponse ¶ added in v0.0.9
type ErroredRPCResponse struct { Raw json.RawMessage `json:"json_response"` // NonJSONResponse, used in cases where json cannot be NonJSONResponse string `json:"non_json_response"` URL string `json:"url"` }
ErroredRPCResponse contains an errored rpc response thisis mostly used for debugging.
type Forwarder ¶
type Forwarder struct {
// contains filtered or unexported fields
}
Forwarder creates a request forwarder.
type RPCProxy ¶
type RPCProxy struct {
// contains filtered or unexported fields
}
RPCProxy proxies rpc request to the fastest endpoint. Requests fallback in cases where data is not available.
func NewProxy ¶
func NewProxy(config config.Config, clientType omniHTTP.ClientType) *RPCProxy
NewProxy creates a new rpc proxy.
func (*RPCProxy) AcquireForwarder ¶ added in v0.0.9
AcquireForwarder allocates a forwarder and allows it to be released when not in use this allows forwarder cycling reducing GC overhead.
func (*RPCProxy) Forward ¶
Forward forwards the rpc request to the servers and makes assertions around confirmation thresholds.
func (*RPCProxy) ReleaseForwarder ¶ added in v0.0.9
ReleaseForwarder releases a forwarder object for reuse.
type RPCRequest ¶
type RPCRequest struct { ID json.RawMessage `json:"id"` Method string `json:"method"` Params []json.RawMessage `json:"params"` }
RPCRequest is a raw rpc request format.