code: func (api *PrivateDebugAPI) TraceBlockByNumber(ctx context.Context, number rpc.BlockNumber, config *TraceConfig) ([]*txTraceResult, error) {
  	// Fetch the block that we want to trace
  	var block *types.Block
  
  	switch number {
  	case rpc.PendingBlockNumber:
  		block = api.eth.miner.PendingBlock()
  	case rpc.LatestBlockNumber:
  		block = api.eth.blockchain.CurrentBlock()
  	default:
  		block = api.eth.blockchain.GetBlockByNumber(uint64(number))
  	}
  	// Trace the block if it was found
  	if block == nil {
  		return nil, fmt.Errorf("block #%d not found", number)
  	}
  	return api.traceBlock(ctx, block, config)
  }
docs: // TraceBlockByNumber returns the structured logs created during the execution of
  // EVM and returns them as a JSON object.