waku-org/go-waku

View on GitHub

Showing 400 of 400 total issues

Method WakuFilterLightNode.Subscribe has 79 lines of code (exceeds 50 allowed). Consider refactoring.
Open

func (wf *WakuFilterLightNode) Subscribe(ctx context.Context, contentFilter protocol.ContentFilter, opts ...FilterSubscribeOption) ([]*subscription.SubscriptionDetails, error) {
    wf.RLock()
    defer wf.RUnlock()
    if err := wf.ErrOnNotRunning(); err != nil {
        return nil, err
Severity: Major
Found in waku/v2/protocol/filter/client.go - About 2 hrs to fix

    Method Pairing.initiatorHandshake has 79 lines of code (exceeds 50 allowed). Consider refactoring.
    Open

    func (p *Pairing) initiatorHandshake(ctx context.Context, msgCh <-chan *pb.WakuMessage) (doneCh chan error) {
        doneCh = make(chan error, 1)
    
        go func() {
            defer utils.LogOnPanic()
    Severity: Major
    Found in waku/v2/protocol/noise/pairing.go - About 2 hrs to fix

      Method UI.Update has 78 lines of code (exceeds 50 allowed). Consider refactoring.
      Open

      func (m UI) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
          var (
              tiCmd tea.Cmd
              vpCmd tea.Cmd
          )
      Severity: Major
      Found in examples/chat2-reliable/ui.go - About 2 hrs to fix

        Method UI.Update has 78 lines of code (exceeds 50 allowed). Consider refactoring.
        Open

        func (m UI) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
            var (
                tiCmd tea.Cmd
                vpCmd tea.Cmd
            )
        Severity: Major
        Found in examples/chat2/ui.go - About 2 hrs to fix

          Method onCreate has 53 lines of code (exceeds 25 allowed). Consider refactoring.
          Open

              override fun onCreate(savedInstanceState: Bundle?) {
                  super.onCreate(savedInstanceState)
                  setContentView(R.layout.activity_main)
          
                  val lbl = findViewById<TextView>(R.id.lbl)

            Identical blocks of code found in 2 locations. Consider refactoring.
            Open

            package main
            
            import (
                "os"
            
            
            Severity: Major
            Found in examples/chat2/main.go and 1 other location - About 2 hrs to fix
            examples/chat2-reliable/main.go on lines 1..36

            Duplicated Code

            Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

            Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

            When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

            Tuning

            This issue has a mass of 196.

            We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

            The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

            If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

            See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

            Refactorings

            Further Reading

            Identical blocks of code found in 2 locations. Consider refactoring.
            Open

            package main
            
            import (
                "os"
            
            
            Severity: Major
            Found in examples/chat2-reliable/main.go and 1 other location - About 2 hrs to fix
            examples/chat2/main.go on lines 1..35

            Duplicated Code

            Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

            Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

            When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

            Tuning

            This issue has a mass of 196.

            We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

            The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

            If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

            See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

            Refactorings

            Further Reading

            Function Test500 has a Cognitive Complexity of 31 (exceeds 20 allowed). Consider refactoring.
            Open

            func Test500(t *testing.T) {
                maxMsgs := 500
                maxMsgBytes := int2Bytes(maxMsgs)
            
                ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
            Severity: Minor
            Found in waku/v2/node/wakunode2_test.go - About 2 hrs to fix

            Cognitive Complexity

            Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

            A method's cognitive complexity is based on a few simple rules:

            • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
            • Code is considered more complex for each "break in the linear flow of the code"
            • Code is considered more complex when "flow breaking structures are nested"

            Further reading

            Function Execute has 23 return statements (exceeds 4 allowed).
            Open

            func Execute(options NodeOptions) error {
                // Set encoding for logs (console, json, ...)
                // Note that libp2p reads the encoding from GOLOG_LOG_FMT env var.
                lvl, err := zapcore.ParseLevel(options.LogLevel)
                if err != nil {
            Severity: Major
            Found in cmd/waku/node.go - About 2 hrs to fix

              Function execute has 77 lines of code (exceeds 50 allowed). Consider refactoring.
              Open

              func execute(options Options) {
                  var err error
                  hostAddr, _ := net.ResolveTCPAddr("tcp", fmt.Sprintf("0.0.0.0:%d", options.Port))
              
                  if options.NodeKey == nil {
              Severity: Major
              Found in examples/chat2/exec.go - About 2 hrs to fix

                Method WakuStore.Request has 77 lines of code (exceeds 50 allowed). Consider refactoring.
                Open

                func (s *WakuStore) Request(ctx context.Context, criteria Criteria, opts ...RequestOption) (Result, error) {
                    params := new(Parameters)
                
                    optList := DefaultOptions()
                    optList = append(optList, opts...)
                Severity: Major
                Found in waku/v2/protocol/store/client.go - About 2 hrs to fix

                  Function TestStaticShardingLimits has 75 lines of code (exceeds 50 allowed). Consider refactoring.
                  Open

                  func TestStaticShardingLimits(t *testing.T) {
                  
                      log := utils.Logger()
                  
                      if os.Getenv("RUN_FLAKY_TESTS") != "true" {
                  Severity: Minor
                  Found in waku/v2/node/wakunode2_test.go - About 2 hrs to fix

                    Function TestDecoupledStoreFromRelay has 75 lines of code (exceeds 50 allowed). Consider refactoring.
                    Open

                    func TestDecoupledStoreFromRelay(t *testing.T) {
                        ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
                        defer cancel()
                    
                        // NODE1: Relay Node + Filter Server
                    Severity: Minor
                    Found in waku/v2/node/wakunode2_test.go - About 2 hrs to fix

                      Method WakuPeerExchange.Request has 75 lines of code (exceeds 50 allowed). Consider refactoring.
                      Open

                      func (wakuPX *WakuPeerExchange) Request(ctx context.Context, numPeers int, opts ...RequestOption) error {
                          params := new(PeerExchangeRequestParameters)
                          params.host = wakuPX.h
                          params.log = wakuPX.log
                          params.pm = wakuPX.pm
                      Severity: Minor
                      Found in waku/v2/protocol/peer_exchange/client.go - About 2 hrs to fix

                        Method WakuFilterLightNode.IncorrectSubscribe has 75 lines of code (exceeds 50 allowed). Consider refactoring.
                        Open

                        func (wf *WakuFilterLightNode) IncorrectSubscribe(ctx context.Context, contentFilter protocol.ContentFilter, opts ...FilterSubscribeOption) ([]*subscription.SubscriptionDetails, error) {
                            wf.RLock()
                            defer wf.RUnlock()
                            if err := wf.ErrOnNotRunning(); err != nil {
                                return nil, err
                        Severity: Minor
                        Found in waku/v2/protocol/filter/filter_proto_ident_test.go - About 2 hrs to fix

                          Identical blocks of code found in 2 locations. Consider refactoring.
                          Open

                          var (
                              appStyle = lipgloss.NewStyle().Padding(1, 2)
                          
                              titleStyle = func() lipgloss.Style {
                                  b := lipgloss.RoundedBorder()
                          Severity: Major
                          Found in examples/chat2-reliable/ui.go and 1 other location - About 2 hrs to fix
                          examples/chat2/ui.go on lines 20..32

                          Duplicated Code

                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                          Tuning

                          This issue has a mass of 189.

                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                          Refactorings

                          Further Reading

                          Identical blocks of code found in 2 locations. Consider refactoring.
                          Open

                          var (
                              appStyle = lipgloss.NewStyle().Padding(1, 2)
                          
                              titleStyle = func() lipgloss.Style {
                                  b := lipgloss.RoundedBorder()
                          Severity: Major
                          Found in examples/chat2/ui.go and 1 other location - About 2 hrs to fix
                          examples/chat2-reliable/ui.go on lines 20..32

                          Duplicated Code

                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                          Tuning

                          This issue has a mass of 189.

                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                          Refactorings

                          Further Reading

                          Method PeerManager.prunePeerStore has 74 lines of code (exceeds 50 allowed). Consider refactoring.
                          Open

                          func (pm *PeerManager) prunePeerStore() {
                              peers := pm.host.Peerstore().Peers()
                              numPeers := len(peers)
                              if numPeers < pm.maxPeers {
                                  pm.logger.Debug("peerstore size within capacity, not pruning", zap.Int("capacity", pm.maxPeers), zap.Int("numPeers", numPeers))
                          Severity: Minor
                          Found in waku/v2/peermanager/peer_manager.go - About 1 hr to fix

                            Method Pairing.responderHandshake has 74 lines of code (exceeds 50 allowed). Consider refactoring.
                            Open

                            func (p *Pairing) responderHandshake(ctx context.Context, msgCh <-chan *pb.WakuMessage) (doneCh chan error) {
                                doneCh = make(chan error, 1)
                            
                                func() {
                                    defer close(doneCh)
                            Severity: Minor
                            Found in waku/v2/protocol/noise/pairing.go - About 1 hr to fix

                              Function TestWakuRelayAutoShard has 73 lines of code (exceeds 50 allowed). Consider refactoring.
                              Open

                              func TestWakuRelayAutoShard(t *testing.T) {
                                  testcTopic := "/toychat/2/huilong/proto"
                                  testcTopic1 := "/toychat/1/huilong/proto"
                              
                                  port, err := tests.FindFreePort(t, "", 5)
                              Severity: Minor
                              Found in waku/v2/protocol/relay/waku_relay_test.go - About 1 hr to fix
                                Severity
                                Category
                                Status
                                Source
                                Language