MCPcopy Create free account
hub / github.com/erpc/erpc / forwardSubrequest

Method forwardSubrequest

erpc/query_shim.go:422–456  ·  view source on GitHub ↗
(ctx context.Context, method string, params []interface{})

Source from the content-addressed store, hash-verified

420}
421
422func (qe *EvmQueryExecutor) forwardSubrequest(ctx context.Context, method string, params []interface{}) ([]byte, error) {
423 if qe.forwardSubrequestFn != nil {
424 return qe.forwardSubrequestFn(ctx, method, params)
425 }
426
427 ctx, span := common.StartDetailSpan(ctx, "Query.ForwardSubrequest")
428 defer span.End()
429 span.SetAttributes(attribute.String("subrequest.method", method))
430
431 qe.logger.Trace().Str("method", method).Interface("params", params).Msgf("forwarding query shim subrequest")
432
433 jrq := common.NewJsonRpcRequest(method, params)
434 if err := jrq.SetID(util.RandomID()); err != nil {
435 return nil, err
436 }
437 req := common.NewNormalizedRequestFromJsonRpcRequest(jrq)
438 req.SetNetwork(qe.network)
439 if qe.parentRequestId != nil {
440 req.SetParentRequestId(qe.parentRequestId)
441 }
442 req.ApplyDirectiveDefaults(qe.network.Config().DirectiveDefaults)
443 resp, err := qe.network.Forward(ctx, req)
444 if err != nil {
445 qe.logger.Trace().Err(err).Str("method", method).Msgf("query shim subrequest failed")
446 common.SetTraceSpanError(span, err)
447 return nil, err
448 }
449 result, err := parseJSONRPCResult(ctx, resp)
450 if err != nil {
451 common.SetTraceSpanError(span, err)
452 return nil, err
453 }
454 qe.logger.Trace().Str("method", method).Int("resultLen", len(result)).Msgf("query shim subrequest completed")
455 return result, nil
456}
457
458func queryLimit(limit uint32) uint32 {
459 if limit == 0 {

Callers 3

fetchBlockViaForwardMethod · 0.95
fetchLogsViaForwardMethod · 0.95
fetchTracesViaForwardMethod · 0.95

Calls 15

SetIDMethod · 0.95
StartDetailSpanFunction · 0.92
NewJsonRpcRequestFunction · 0.92
RandomIDFunction · 0.92
SetTraceSpanErrorFunction · 0.92
parseJSONRPCResultFunction · 0.85
EndMethod · 0.80
SetAttributesMethod · 0.80
SetParentRequestIdMethod · 0.80
ConfigMethod · 0.65

Tested by

no test coverage detected