Skip to content

Commit

Permalink
feat: Opt-in cmd support add quorum args (#167)
Browse files Browse the repository at this point in the history
* add QuorumNumbers arg

* fix add QuorumNumbers arg
  • Loading branch information
fyInALT committed Jul 3, 2024
1 parent 4a83f6f commit b534300
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 2 deletions.
45 changes: 44 additions & 1 deletion legacy/cli/actions/register_operator_with_avs.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,14 @@ import (
"encoding/json"
"log"
"os"
"strconv"
"strings"

sdkecdsa "github.com/Layr-Labs/eigensdk-go/crypto/ecdsa"
sdkutils "github.com/Layr-Labs/eigensdk-go/utils"
"github.com/alt-research/avs/legacy/core/config"
"github.com/alt-research/avs/legacy/operator"
"github.com/pkg/errors"
"github.com/urfave/cli"
)

Expand Down Expand Up @@ -46,10 +49,50 @@ func RegisterOperatorWithAvs(ctx *cli.Context) error {
return err
}

err = operator.RegisterOperatorWithAvs(operatorEcdsaPrivKey)
quorumNumbers := []byte{0}

quorumNumbersEnvStr, ok := os.LookupEnv("REG_QUORUM_NUMBERS")
if ok && quorumNumbersEnvStr != "" {
log.Printf("use REG_QUORUM_NUMBERS %v", quorumNumbersEnvStr)
quorumNumbers, err = parseQuorumNumbers(quorumNumbersEnvStr)
if err != nil {
return errors.Wrap(err, "failed to parse REG_QUORUM_NUMBERS into quorumNumbers")
}
}

quorumNumbersStr := ctx.String("quorum-numbers")
if quorumNumbersStr != "" {
log.Printf("use --quorum-numbers %v", quorumNumbersEnvStr)
quorumNumbers, err = parseQuorumNumbers(quorumNumbersEnvStr)
if err != nil {
return errors.Wrap(err, "failed to parse --quorum-numbers into quorumNumbers")
}
}

err = operator.RegisterOperatorWithAvs(operatorEcdsaPrivKey, quorumNumbers)
if err != nil {
return err
}

return nil
}

func parseQuorumNumbers(str string) ([]byte, error) {
strArray := strings.Split(str, ",")

res := make([]byte, 0, len(strArray))
for i, s := range strArray {
si, err := strconv.Atoi(s)
if err != nil {
return nil, errors.Wrapf(err, "failed to atoi %s in pos %v", s, i)
}

if si < 0 || si >= 192 {
return nil, errors.Errorf("failed by %v not in [0, 192)", si)
}

res = append(res, byte(si))
}

return res, nil
}
6 changes: 6 additions & 0 deletions legacy/cli/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,12 @@ func main() {
Aliases: []string{"r"},
Usage: "registers bls keys with pubkey-compendium, opts into slashing by avs service-manager, and registers operators with avs registry",
Action: actions.RegisterOperatorWithAvs,
Flags: []cli.Flag{
cli.StringFlag{
Name: "quorum-numbers",
Usage: "The quorum numbers, if not set, will be 0",
},
},
},
{
Name: "deregister-operator-with-avs",
Expand Down
2 changes: 1 addition & 1 deletion legacy/operator/registration.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,9 @@ func (o *Operator) DepositIntoStrategy(strategyAddr common.Address, amount *big.
// Registration specific functions
func (o *Operator) RegisterOperatorWithAvs(
operatorEcdsaKeyPair *ecdsa.PrivateKey,
quorumNumbers []byte,
) error {
// hardcode these things for now
quorumNumbers := []byte{0}
socket := o.config.OperatorSocket

// Generate salt and expiry
Expand Down

0 comments on commit b534300

Please sign in to comment.