(ctx context.Context, method string, params []interface{})
| 420 | } |
| 421 | |
| 422 | func (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 | |
| 458 | func queryLimit(limit uint32) uint32 { |
| 459 | if limit == 0 { |
no test coverage detected