diff --git a/etherdelta.go b/etherdelta.go index de71667..136df04 100644 --- a/etherdelta.go +++ b/etherdelta.go @@ -599,7 +599,10 @@ func (s *Service) MakeOrder(opts *MakeOrderOpts) (string, error) { return result, fmt.Errorf("ECRecover error: %s", err) } - pubKey := crypto.ToECDSAPub(recoveredPub) + pubKey, err := crypto.UnmarshalPubkey(recoveredPub) + if err != nil { + return result, fmt.Errorf("Invalid public key: %x", recoveredPub) + } recoveredAddr := crypto.PubkeyToAddress(*pubKey) addr := common.HexToAddress(opts.UserAddress) diff --git a/etherdelta_test.go b/etherdelta_test.go index 69a27f1..dd0e750 100644 --- a/etherdelta_test.go +++ b/etherdelta_test.go @@ -75,7 +75,7 @@ func TestGetTokenTicker(t *testing.T) { } func TestGetTokenPrice(t *testing.T) { - //t.Skip("Skipping GetTokenPrice") + t.Skip("Skipping GetTokenPrice") getTokenPriceOpts := &GetTokenPriceOpts{ TokenSymbol: "BAT", } @@ -518,7 +518,7 @@ func TestSignature(t *testing.T) { } recoveredPub, err := crypto.Ecrecover(msg, sig) - pubKey := crypto.ToECDSAPub(recoveredPub) + pubKey, _ := crypto.UnmarshalPubkey(recoveredPub) recoveredAddr := crypto.PubkeyToAddress(*pubKey) addr := common.HexToAddress(orderPost.User)