Skip to content

Commit

Permalink
chore: test more utils funcs
Browse files Browse the repository at this point in the history
  • Loading branch information
estensen committed Sep 18, 2024
1 parent 24fa758 commit dcd3acd
Show file tree
Hide file tree
Showing 4 changed files with 452 additions and 58 deletions.
3 changes: 2 additions & 1 deletion types/operator.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
"fmt"
"log/slog"
"math/big"
"net/http"

"github.com/Layr-Labs/eigensdk-go/crypto/bls"
"github.com/Layr-Labs/eigensdk-go/utils"
Expand Down Expand Up @@ -46,7 +47,7 @@ func (o Operator) Validate() error {
return utils.WrapError(ErrInvalidMetadataUrl, err)
}

body, err := utils.ReadPublicURL(o.MetadataUrl)
body, err := utils.ReadPublicURL(o.MetadataUrl, http.DefaultClient)
if err != nil {
return utils.WrapError(ErrReadingMetadataUrlResponse, err)
}
Expand Down
4 changes: 3 additions & 1 deletion types/operator_metadata.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package types

import (
"net/http"

"github.com/Layr-Labs/eigensdk-go/utils"
)

Expand Down Expand Up @@ -45,7 +47,7 @@ func (om *OperatorMetadata) Validate() error {
return ErrLogoRequired
}

if err = utils.IsImageURL(om.Logo); err != nil {
if err = utils.IsImageURL(om.Logo, http.DefaultClient); err != nil {
return err
}

Expand Down
18 changes: 9 additions & 9 deletions utils/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ func EcdsaPrivateKeyToAddress(privateKey *ecdsa.PrivateKey) (gethcommon.Address,
return crypto.PubkeyToAddress(*publicKeyECDSA), nil
}

// RoundUpDivideBig divides two positive big.Int numbers and rounds up the result.
func RoundUpDivideBig(a, b *big.Int) *big.Int {
one := new(big.Int).SetUint64(1)
res := new(big.Int)
Expand All @@ -118,14 +119,13 @@ func IsValidEthereumAddress(address string) bool {
return ethAddrPattern.MatchString(address)
}

func ReadPublicURL(url string) ([]byte, error) {
// allow no redirects
httpClient := http.Client{
CheckRedirect: func(req *http.Request, via []*http.Request) error {
return http.ErrUseLastResponse
},
Timeout: 3 * time.Second,
func ReadPublicURL(url string, httpClient *http.Client) ([]byte, error) {
// Allow no redirects
httpClient.CheckRedirect = func(req *http.Request, via []*http.Request) error {
return http.ErrUseLastResponse
}
httpClient.Timeout = 3 * time.Second

resp, err := httpClient.Get(url)
if err != nil {
return []byte{}, err
Expand Down Expand Up @@ -213,7 +213,7 @@ func CheckIfUrlIsValid(rawUrl string) error {
return nil
}

func IsImageURL(urlString string) error {
func IsImageURL(urlString string, httpClient *http.Client) error {
// Parse the URL
parsedURL, err := url.Parse(urlString)
if err != nil {
Expand All @@ -229,7 +229,7 @@ func IsImageURL(urlString string) error {
// Check if the extension is in the list of image extensions
for _, imgExt := range ImageExtensions {
if strings.EqualFold(extension, imgExt) {
imageBytes, err := ReadPublicURL(urlString)
imageBytes, err := ReadPublicURL(urlString, httpClient)
if err != nil {
return err
}
Expand Down
Loading

0 comments on commit dcd3acd

Please sign in to comment.