diff --git a/plugins/dashboard/explorer_routes.go b/plugins/dashboard/explorer_routes.go index de9b3ae4b1f375d25d6de503a335de229de7344a..d392f8757ddf0f0ad23ab51ffeaffd29bd8e67d2 100644 --- a/plugins/dashboard/explorer_routes.go +++ b/plugins/dashboard/explorer_routes.go @@ -3,7 +3,6 @@ package dashboard import ( "fmt" "net/http" - "sync" "github.com/iotaledger/goshimmer/dapps/valuetransfers" "github.com/iotaledger/goshimmer/dapps/valuetransfers/packages/address" @@ -12,6 +11,7 @@ import ( "github.com/iotaledger/goshimmer/plugins/messagelayer" "github.com/iotaledger/goshimmer/plugins/webapi/value/utils" "github.com/labstack/echo" + "github.com/mr-tron/base58/base58" ) // ExplorerMessage defines the struct of the ExplorerMessage. @@ -111,42 +111,35 @@ func setupExplorerRoutes(routeGroup *echo.Group) { routeGroup.GET("/search/:search", func(c echo.Context) error { search := c.Param("search") result := &SearchResult{} - wg := sync.WaitGroup{} - switch len(search) { + searchInByte, err := base58.Decode(search) + if err != nil { + return fmt.Errorf("%w: search ID %s", ErrInvalidParameter, search) + } + + switch len(searchInByte) { case address.Length: - wg.Add(1) - go func() { - defer wg.Done() - addr, err := findAddress(search) - if err == nil { - result.Address = addr - } - }() + addr, err := findAddress(search) + if err == nil { + result.Address = addr + } case message.IdLength: - wg.Add(1) - go func() { - defer wg.Done() - - messageID, err := message.NewId(search) - if err != nil { - return - } + messageID, err := message.NewId(search) + if err != nil { + return fmt.Errorf("%w: search ID %s", ErrInvalidParameter, search) + } - msg, err := findMessage(messageID) - if err == nil { - result.Message = msg - } - }() + msg, err := findMessage(messageID) + if err == nil { + result.Message = msg + } default: return fmt.Errorf("%w: search ID %s", ErrInvalidParameter, search) } - wg.Wait() - return c.JSON(http.StatusOK, result) }) }