dragonchain/dragonchain-sdk-go

View on GitHub

Showing 14 of 18 total issues

File client.go has 779 lines of code (exceeds 500 allowed). Consider refactoring.
Open

// Copyright 2020 Dragonchain, Inc. or its affiliates. All Rights Reserved.
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//     http://www.apache.org/licenses/LICENSE-2.0
Severity: Major
Found in client.go - About 1 day to fix

    Client has 33 methods (exceeds 20 allowed). Consider refactoring.
    Open

    type Client struct {
        creds      Authenticator
        apiBaseURL string
    
        httpClient httpClient
    Severity: Minor
    Found in client.go - About 4 hrs to fix

      Function NewCredentials has 6 return statements (exceeds 4 allowed).
      Open

      func NewCredentials(dcID, authKey, authKeyID, algorithm string) (*Credentials, error) {
          var err error
          var hashFunc func() hash.Hash
      
          switch algorithm {
      Severity: Major
      Found in credentials.go - About 40 mins to fix

        Method Client.QuerySmartContracts has 6 return statements (exceeds 4 allowed).
        Open

        func (client *Client) QuerySmartContracts(query *Query) (*Response, error) {
            path := "/contract"
            uri := fmt.Sprintf("%s%s", client.apiBaseURL, path)
            req, err := http.NewRequest("GET", uri, bytes.NewBuffer([]byte("")))
            if err != nil {
        Severity: Major
        Found in client.go - About 40 mins to fix

          Method Client.CreateBitcoinTransaction has 6 return statements (exceeds 4 allowed).
          Open

          func (client *Client) CreateBitcoinTransaction(btcTransaction *BitcoinTransaction) (*Response, error) {
              if !BitcoinNetworks[btcTransaction.Network] {
                  return nil, fmt.Errorf("bitcoin transactions can only be created on supported networks: %+v", BitcoinNetworks)
              }
              uri := fmt.Sprintf("%s%s", client.apiBaseURL, "/public-blockchain-transaction")
          Severity: Major
          Found in client.go - About 40 mins to fix

            Method Client.CreateEthereumTransaction has 6 return statements (exceeds 4 allowed).
            Open

            func (client *Client) CreateEthereumTransaction(ethTransaction *EthereumTransaction) (*Response, error) {
                if !EthereumNetworks[ethTransaction.Network] {
                    return nil, fmt.Errorf("ethereum transactions can only be created on supported networks: %+v", EthereumNetworks)
                }
                uri := fmt.Sprintf("%s%s", client.apiBaseURL, "/public-blockchain-transaction")
            Severity: Major
            Found in client.go - About 40 mins to fix

              Method Client.CreateFactor has 5 return statements (exceeds 4 allowed).
              Open

              func (client *Client) CreateFactor(factor string) (_ *Response, err error) {
                  path := "/factor"
                  uri := fmt.Sprintf("%s%s", client.apiBaseURL, path)
                  var params Factor
                  params.Version = "1"
              Severity: Major
              Found in client.go - About 35 mins to fix

                Method Client.GetSmartContract has 5 return statements (exceeds 4 allowed).
                Open

                func (client *Client) GetSmartContract(smartContractID, transactionType string) (*Response, error) {
                    var err error
                    var uri string
                    if smartContractID == "" && transactionType == "" {
                        return nil, errors.New("invalid parameters: you must provide one of smartContractID or transactionType")
                Severity: Major
                Found in client.go - About 35 mins to fix

                  Method Client.GetVerifications has 5 return statements (exceeds 4 allowed).
                  Open

                  func (client *Client) GetVerifications(blockID string, level int) (*Response, error) {
                      path := "/verifications"
                      uri := fmt.Sprintf("%s%s/%s", client.apiBaseURL, path, blockID)
                  
                      req, err := http.NewRequest("GET", uri, bytes.NewBuffer([]byte("")))
                  Severity: Major
                  Found in client.go - About 35 mins to fix

                    Method Client.UpdateTransactionType has 5 return statements (exceeds 4 allowed).
                    Open

                    func (client *Client) UpdateTransactionType(transactionType string, customIndexes []CustomIndexStructure) (*Response, error) {
                        path := "/transaction-type"
                        uri := fmt.Sprintf("%s%s/%s", client.apiBaseURL, path, transactionType)
                        var params TransactionType
                        params.Version = "1"
                    Severity: Major
                    Found in client.go - About 35 mins to fix

                      Function getAuthKeyID has 5 return statements (exceeds 4 allowed).
                      Open

                      func getAuthKeyID(ID string) (string, error) {
                          authKeyID := os.Getenv(EnvKeyIDName)
                          if len(authKeyID) > 0 {
                              return authKeyID, nil
                          }
                      Severity: Major
                      Found in credentials.go - About 35 mins to fix

                        Method Client.CreateTransactionType has 5 return statements (exceeds 4 allowed).
                        Open

                        func (client *Client) CreateTransactionType(transactionType string, customIndexes []CustomIndexStructure) (_ *Response, err error) {
                            path := "/transaction-type"
                            uri := fmt.Sprintf("%s%s", client.apiBaseURL, path)
                            var params TransactionType
                            params.Version = "1"
                        Severity: Major
                        Found in client.go - About 35 mins to fix

                          Function GetCredentialConfigs has 5 return statements (exceeds 4 allowed).
                          Open

                          func GetCredentialConfigs() (*Configuration, error) {
                              if configs != nil {
                                  return configs, nil
                              }
                          
                          
                          Severity: Major
                          Found in configuration.go - About 35 mins to fix

                            Function getAuthKey has 5 return statements (exceeds 4 allowed).
                            Open

                            func getAuthKey(dcID string) (string, error) {
                                authKey := os.Getenv(EnvKeyName)
                                if len(authKey) > 0 {
                                    return authKey, nil
                                }
                            Severity: Major
                            Found in credentials.go - About 35 mins to fix
                              Severity
                              Category
                              Status
                              Source
                              Language