Skip to content

Commit

Permalink
pectra ready
Browse files Browse the repository at this point in the history
  • Loading branch information
pavelkrolevets committed Oct 7, 2024
1 parent 691df4f commit 241f6ed
Show file tree
Hide file tree
Showing 21 changed files with 311 additions and 182 deletions.
9 changes: 8 additions & 1 deletion cli/flags/flags.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"fmt"

"github.com/spf13/cobra"
spec_crypto "github.com/ssvlabs/dkg-spec/crypto"
)

// Flag names.
Expand All @@ -19,6 +20,7 @@ const (
operatorPort = "port"
owner = "owner"
nonce = "nonce"
amount = "amount"
network = "network"
outputPath = "outputPath"
logLevel = "logLevel"
Expand Down Expand Up @@ -66,11 +68,16 @@ func OwnerAddressFlag(c *cobra.Command) {
AddPersistentStringFlag(c, owner, "", "Owner address", false)
}

// NonceFlag owner nonce flag to the command
// NonceFlag adds nonce flag to the command
func NonceFlag(c *cobra.Command) {
AddPersistentIntFlag(c, nonce, 0, "Owner nonce", false)
}

// AmountFlag adds amount in Gwei flag to the command (https://eips.ethereum.org/EIPS/eip-7251)
func AmountFlag(c *cobra.Command) {
AddPersistentIntFlag(c, amount, uint64(spec_crypto.MIN_ACTIVATION_BALANCE), "Amount in Gwei", false)
}

// NetworkFlag adds the fork version of the network flag to the command
func NetworkFlag(c *cobra.Command) {
AddPersistentStringFlag(c, network, "mainnet", "Network name: mainnet, prater, holesky", false)
Expand Down
2 changes: 1 addition & 1 deletion cli/initiator/initiator.go
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ var StartDKG = &cobra.Command{
id := spec.NewID()
nonce := cli_utils.Nonce + uint64(i)
// Perform the ceremony.
depositData, keyShares, proofs, err := dkgInitiator.StartDKG(id, cli_utils.WithdrawAddress.Bytes(), operatorIDs, ethNetwork, cli_utils.OwnerAddress, nonce)
depositData, keyShares, proofs, err := dkgInitiator.StartDKG(id, cli_utils.WithdrawAddress.Bytes(), operatorIDs, ethNetwork, cli_utils.OwnerAddress, nonce, cli_utils.Amount)
if err != nil {
return nil, err
}
Expand Down
6 changes: 4 additions & 2 deletions cli/initiator/reshare.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,8 @@ var GenerateReshareMsg = &cobra.Command{
ethNetwork,
cli_utils.WithdrawAddress[:],
cli_utils.OwnerAddress,
nonce,
nonce,
cli_utils.Amount,
signedProofs[i],
)
if err != nil {
Expand Down Expand Up @@ -191,7 +192,8 @@ var StartReshare = &cobra.Command{
ethNetwork,
cli_utils.WithdrawAddress[:],
cli_utils.OwnerAddress,
nonce,
nonce,
cli_utils.Amount,
signedProofs[i],
)
if err != nil {
Expand Down
5 changes: 3 additions & 2 deletions cli/initiator/resigning.go
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,8 @@ var GenerateResignMsg = &cobra.Command{
ethNetwork,
cli_utils.WithdrawAddress[:],
cli_utils.OwnerAddress,
nonce,
nonce,
cli_utils.Amount,
signedProofs[i],
)
if err != nil {
Expand Down Expand Up @@ -180,7 +181,7 @@ var StartResigning = &cobra.Command{
ethNetwork,
cli_utils.WithdrawAddress[:],
cli_utils.OwnerAddress,
nonce,
nonce, cli_utils.Amount,
signedProofs[i],
)
if err != nil {
Expand Down
35 changes: 35 additions & 0 deletions cli/utils/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import (
"syscall"
"time"

"github.com/attestantio/go-eth2-client/spec/phase0"
"github.com/bloxapp/ssv/logging"
"github.com/ethereum/go-ethereum/common"
"github.com/spf13/cobra"
Expand Down Expand Up @@ -49,6 +50,7 @@ var (
Network string
OwnerAddress common.Address
Nonce uint64
Amount uint64
Validators uint
ClientCACertPath []string
)
Expand Down Expand Up @@ -173,6 +175,7 @@ func SetInitFlags(cmd *cobra.Command) {
flags.OperatorIDsFlag(cmd)
flags.OwnerAddressFlag(cmd)
flags.NonceFlag(cmd)
flags.AmountFlag(cmd)
flags.NetworkFlag(cmd)
flags.WithdrawAddressFlag(cmd)
flags.ValidatorsFlag(cmd)
Expand Down Expand Up @@ -205,6 +208,7 @@ func SetGenerateResignMsgFlags(cmd *cobra.Command) {
flags.OperatorIDsFlag(cmd)
flags.OwnerAddressFlag(cmd)
flags.NonceFlag(cmd)
flags.AmountFlag(cmd)
flags.NetworkFlag(cmd)
flags.WithdrawAddressFlag(cmd)
flags.ProofsFilePath(cmd)
Expand All @@ -222,6 +226,7 @@ func SetGenerateReshareMsgFlags(cmd *cobra.Command) {
flags.WithdrawAddressFlag(cmd)
flags.OwnerAddressFlag(cmd)
flags.NonceFlag(cmd)
flags.AmountFlag(cmd)
flags.NetworkFlag(cmd)
flags.ProofsFilePath(cmd)
flags.ProofsStringFlag(cmd)
Expand All @@ -236,6 +241,7 @@ func SetResigningFlags(cmd *cobra.Command) {
flags.OperatorIDsFlag(cmd)
flags.OwnerAddressFlag(cmd)
flags.NonceFlag(cmd)
flags.AmountFlag(cmd)
flags.NetworkFlag(cmd)
flags.WithdrawAddressFlag(cmd)
flags.ProofsFilePath(cmd)
Expand All @@ -254,6 +260,7 @@ func SetReshareFlags(cmd *cobra.Command) {
flags.WithdrawAddressFlag(cmd)
flags.OwnerAddressFlag(cmd)
flags.NonceFlag(cmd)
flags.AmountFlag(cmd)
flags.NetworkFlag(cmd)
flags.ProofsFilePath(cmd)
flags.ProofsStringFlag(cmd)
Expand Down Expand Up @@ -324,6 +331,9 @@ func BindInitiatorBaseFlags(cmd *cobra.Command) error {
if err := viper.BindPFlag("nonce", cmd.PersistentFlags().Lookup("nonce")); err != nil {
return err
}
if err := viper.BindPFlag("amount", cmd.PersistentFlags().Lookup("amount")); err != nil {
return err
}
if err := viper.BindPFlag("operatorsInfoPath", cmd.PersistentFlags().Lookup("operatorsInfoPath")); err != nil {
return err
}
Expand Down Expand Up @@ -352,6 +362,10 @@ func BindInitiatorBaseFlags(cmd *cobra.Command) error {
if owner == "" {
return fmt.Errorf("😥 Failed to get owner address flag value")
}
Amount = viper.GetUint64("amount")
if !spec.ValidAmountSet(phase0.Gwei(Amount)) {
return fmt.Errorf("🚨 Amount should be in range between 32 ETH and 2048 ETH")
}
OwnerAddress, err = utils.HexToAddress(owner)
if err != nil {
return fmt.Errorf("😥 Failed to parse owner address: %s", err)
Expand Down Expand Up @@ -416,6 +430,9 @@ func BindGenerateResignMsgFlags(cmd *cobra.Command) error {
if err := viper.BindPFlag("nonce", cmd.PersistentFlags().Lookup("nonce")); err != nil {
return err
}
if err := viper.BindPFlag("amount", cmd.PersistentFlags().Lookup("amount")); err != nil {
return err
}
if err := viper.BindPFlag("clientCACertPath", cmd.PersistentFlags().Lookup("clientCACertPath")); err != nil {
return err
}
Expand Down Expand Up @@ -457,6 +474,10 @@ func BindGenerateResignMsgFlags(cmd *cobra.Command) error {
return fmt.Errorf("😥 Failed to get owner address flag value")
}
Nonce = viper.GetUint64("nonce")
Amount = viper.GetUint64("amount")
if !spec.ValidAmountSet(phase0.Gwei(Amount)) {
return fmt.Errorf("🚨 Amount should be in range between 32 ETH and 2048 ETH")
}
ClientCACertPath = viper.GetStringSlice("clientCACertPath")
for _, certPath := range ClientCACertPath {
if strings.Contains(filepath.Clean(certPath), "..") {
Expand Down Expand Up @@ -543,6 +564,9 @@ func BindGenerateReshareMsgFlags(cmd *cobra.Command) error {
if err := viper.BindPFlag("nonce", cmd.PersistentFlags().Lookup("nonce")); err != nil {
return err
}
if err := viper.BindPFlag("amount", cmd.PersistentFlags().Lookup("amount")); err != nil {
return err
}
if err := viper.BindPFlag("proofsFilePath", cmd.PersistentFlags().Lookup("proofsFilePath")); err != nil {
return err
}
Expand Down Expand Up @@ -607,6 +631,10 @@ func BindGenerateReshareMsgFlags(cmd *cobra.Command) error {
return fmt.Errorf("😥 Failed to parse owner address: %s", err)
}
Nonce = viper.GetUint64("nonce")
Amount = viper.GetUint64("amount")
if !spec.ValidAmountSet(phase0.Gwei(Amount)) {
return fmt.Errorf("🚨 Amount should be in range between 32 ETH and 2048 ETH")
}
ClientCACertPath = viper.GetStringSlice("clientCACertPath")
for _, certPath := range ClientCACertPath {
if strings.Contains(filepath.Clean(certPath), "..") {
Expand Down Expand Up @@ -702,6 +730,9 @@ func BindVerifyFlags(cmd *cobra.Command) error {
if err := viper.BindPFlag("nonce", cmd.PersistentFlags().Lookup("nonce")); err != nil {
return err
}
if err := viper.BindPFlag("amount", cmd.PersistentFlags().Lookup("amount")); err != nil {
return err
}
if err := viper.BindPFlag("owner", cmd.PersistentFlags().Lookup("owner")); err != nil {
return err
}
Expand All @@ -719,6 +750,10 @@ func BindVerifyFlags(cmd *cobra.Command) error {
return fmt.Errorf("😥 Failed to parse owner address: %s", err)
}
Nonce = viper.GetUint64("nonce")
Amount = viper.GetUint64("amount")
if !spec.ValidAmountSet(phase0.Gwei(Amount)) {
return fmt.Errorf("🚨 Amount should be in range between 32 ETH and 2048 ETH")
}
WithdrawAddress, err = utils.HexToAddress(viper.GetString("withdrawAddress"))
if err != nil {
return fmt.Errorf("😥 Failed to parse withdraw address: %s", err)
Expand Down
4 changes: 2 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ require (
github.com/sourcegraph/conc v0.3.0
github.com/spf13/cobra v1.7.0
github.com/spf13/pflag v1.0.5
github.com/ssvlabs/dkg-spec v0.0.0-20240417085845-2f5e6b68f3ae
github.com/ssvlabs/dkg-spec v0.0.0-20241007074617-40e39a71b6bd
github.com/stretchr/testify v1.9.0
github.com/wealdtech/go-eth2-util v1.8.1
go.uber.org/zap v1.24.0
Expand Down Expand Up @@ -112,4 +112,4 @@ require (
gopkg.in/yaml.v3 v3.0.1 // indirect
)

replace github.com/ssvlabs/dkg-spec v0.0.0-20240417085845-2f5e6b68f3ae => github.com/pavelkrolevets/dkg-spec v0.0.0-20240911132539-d3b223c79b34
replace github.com/ssvlabs/dkg-spec v0.0.0-20241007074617-40e39a71b6bd => github.com/pavelkrolevets/dkg-spec v0.0.0-20241007101621-82596abc10c8
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -327,8 +327,8 @@ github.com/onsi/ginkgo/v2 v2.10.0 h1:sfUl4qgLdvkChZrWCYndY2EAu9BRIw1YphNAzy1VNWs
github.com/onsi/ginkgo/v2 v2.10.0/go.mod h1:UDQOh5wbQUlMnkLfVaIUMtQ1Vus92oM+P2JX1aulgcE=
github.com/onsi/gomega v1.27.7 h1:fVih9JD6ogIiHUN6ePK7HJidyEDpWGVB5mzM7cWNXoU=
github.com/onsi/gomega v1.27.7/go.mod h1:1p8OOlwo2iUUDsHnOrjE5UKYJ+e3W8eQ3qSlRahPmr4=
github.com/pavelkrolevets/dkg-spec v0.0.0-20240911132539-d3b223c79b34 h1:Dsrl64I9Mzm4nBt8/M8rlHUuYvQ5pbGqyGMufUdLBlI=
github.com/pavelkrolevets/dkg-spec v0.0.0-20240911132539-d3b223c79b34/go.mod h1:0nho9Kj4P+rrkdyj+KrlzUWGNWA50tnu17ejIHqcR74=
github.com/pavelkrolevets/dkg-spec v0.0.0-20241007101621-82596abc10c8 h1:sCpqeaw8MN/G8N+y0NTr1cn18gpE1MoY0NzIyss/ckY=
github.com/pavelkrolevets/dkg-spec v0.0.0-20241007101621-82596abc10c8/go.mod h1:0nho9Kj4P+rrkdyj+KrlzUWGNWA50tnu17ejIHqcR74=
github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ=
github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
Expand Down
Loading

0 comments on commit 241f6ed

Please sign in to comment.