Skip to content

Commit f17c152

Browse files
OppenMarcosNicolauuri-99
authored
fix: remove unneeded uses of ECDSA private key (#1488)
Co-authored-by: Marcos Nicolau <marcosnicolau@lambdaclass.com> Co-authored-by: Urix <43704209+uri-99@users.noreply.github.com>
1 parent d57c028 commit f17c152

7 files changed

Lines changed: 26 additions & 48 deletions

File tree

aggregator/pkg/aggregator.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ func NewAggregator(aggregatorConfig config.AggregatorConfig) (*Aggregator, error
105105
// Telemetry
106106
aggregatorTelemetry := NewTelemetry(aggregatorConfig.Aggregator.TelemetryIpPortAddress, logger)
107107

108-
avsReader, err := chainio.NewAvsReaderFromConfig(aggregatorConfig.BaseConfig, aggregatorConfig.EcdsaConfig)
108+
avsReader, err := chainio.NewAvsReaderFromConfig(aggregatorConfig.BaseConfig)
109109
if err != nil {
110110
return nil, err
111111
}
@@ -134,9 +134,7 @@ func NewAggregator(aggregatorConfig config.AggregatorConfig) (*Aggregator, error
134134
PromMetricsIpPortAddress: ":9090",
135135
}
136136

137-
aggregatorPrivateKey := aggregatorConfig.EcdsaConfig.PrivateKey
138-
139-
clients, err := sdkclients.BuildAll(chainioConfig, aggregatorPrivateKey, logger)
137+
clients, err := sdkclients.BuildReadClients(chainioConfig, logger)
140138
if err != nil {
141139
logger.Errorf("Cannot create sdk clients", "err", err)
142140
return nil, err

core/chainio/avs_reader.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ type AvsReader struct {
2424
logger logging.Logger
2525
}
2626

27-
func NewAvsReaderFromConfig(baseConfig *config.BaseConfig, ecdsaConfig *config.EcdsaConfig) (*AvsReader, error) {
27+
func NewAvsReaderFromConfig(baseConfig *config.BaseConfig) (*AvsReader, error) {
2828

2929
buildAllConfig := clients.BuildAllConfig{
3030
EthHttpUrl: baseConfig.EthRpcUrl,
@@ -35,7 +35,7 @@ func NewAvsReaderFromConfig(baseConfig *config.BaseConfig, ecdsaConfig *config.E
3535
PromMetricsIpPortAddress: baseConfig.EigenMetricsIpPortAddress,
3636
}
3737

38-
clients, err := clients.BuildAll(buildAllConfig, ecdsaConfig.PrivateKey, baseConfig.Logger)
38+
clients, err := clients.BuildReadClients(buildAllConfig, baseConfig.Logger)
3939
if err != nil {
4040
return nil, err
4141
}

core/config/operator.go

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import (
1111

1212
type OperatorConfig struct {
1313
BaseConfig *BaseConfig
14-
EcdsaConfig *EcdsaConfig
1514
BlsConfig *BlsConfig
1615
AlignedLayerDeploymentConfig *AlignedLayerDeploymentConfig
1716

@@ -46,7 +45,6 @@ type OperatorConfigFromYaml struct {
4645
MaxBatchSize int64 `yaml:"max_batch_size"`
4746
LastProcessedBatchFilePath string `yaml:"last_processed_batch_filepath"`
4847
} `yaml:"operator"`
49-
EcdsaConfigFromYaml EcdsaConfigFromYaml `yaml:"ecdsa"`
5048
BlsConfigFromYaml BlsConfigFromYaml `yaml:"bls"`
5149
}
5250

@@ -60,11 +58,6 @@ func NewOperatorConfig(configFilePath string) *OperatorConfig {
6058
log.Fatal("Error reading base config: ")
6159
}
6260

63-
ecdsaConfig := NewEcdsaConfig(configFilePath, baseConfig.ChainId)
64-
if ecdsaConfig == nil {
65-
log.Fatal("Error reading ecdsa config: ")
66-
}
67-
6861
blsConfig := NewBlsConfig(configFilePath)
6962
if blsConfig == nil {
7063
log.Fatal("Error reading bls config: ")
@@ -79,7 +72,6 @@ func NewOperatorConfig(configFilePath string) *OperatorConfig {
7972

8073
return &OperatorConfig{
8174
BaseConfig: baseConfig,
82-
EcdsaConfig: ecdsaConfig,
8375
BlsConfig: blsConfig,
8476
AlignedLayerDeploymentConfig: baseConfig.AlignedLayerDeploymentConfig,
8577
Operator: struct {

operator/cmd/actions/deposit_into_strategy.go

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@ func depositIntoStrategyMain(ctx *cli.Context) error {
5050
return nil
5151
}
5252

53-
config := config.NewOperatorConfig(ctx.String(config.ConfigFileFlag.Name))
53+
opConfig := config.NewOperatorConfig(ctx.String(config.ConfigFileFlag.Name))
54+
ecdsaConfig := config.NewEcdsaConfig(ctx.String(config.ConfigFileFlag.Name), opConfig.BaseConfig.ChainId)
5455
strategyAddressStr := ctx.String(StrategyAddressFlag.Name)
5556
if strategyAddressStr == "" {
5657
log.Println("Strategy address is required")
@@ -59,35 +60,35 @@ func depositIntoStrategyMain(ctx *cli.Context) error {
5960
log.Println("Depositing into strategy", strategyAddressStr)
6061
strategyAddr := common.HexToAddress(strategyAddressStr)
6162

62-
delegationManagerAddr := config.BaseConfig.EigenLayerDeploymentConfig.DelegationManagerAddr
63-
avsDirectoryAddr := config.BaseConfig.EigenLayerDeploymentConfig.AVSDirectoryAddr
63+
delegationManagerAddr := opConfig.BaseConfig.EigenLayerDeploymentConfig.DelegationManagerAddr
64+
avsDirectoryAddr := opConfig.BaseConfig.EigenLayerDeploymentConfig.AVSDirectoryAddr
6465

6566
signerConfig := signerv2.Config{
66-
PrivateKey: config.EcdsaConfig.PrivateKey,
67+
PrivateKey: ecdsaConfig.PrivateKey,
6768
}
68-
signerFn, _, err := signerv2.SignerFromConfig(signerConfig, config.BaseConfig.ChainId)
69+
signerFn, _, err := signerv2.SignerFromConfig(signerConfig, opConfig.BaseConfig.ChainId)
6970
if err != nil {
7071
return err
7172
}
72-
w, err := wallet.NewPrivateKeyWallet(&config.BaseConfig.EthRpcClient, signerFn,
73-
config.Operator.Address, config.BaseConfig.Logger)
73+
w, err := wallet.NewPrivateKeyWallet(&opConfig.BaseConfig.EthRpcClient, signerFn,
74+
opConfig.Operator.Address, opConfig.BaseConfig.Logger)
7475

7576
if err != nil {
7677
return err
7778
}
7879

79-
txMgr := txmgr.NewSimpleTxManager(w, &config.BaseConfig.EthRpcClient, config.BaseConfig.Logger,
80-
config.Operator.Address)
80+
txMgr := txmgr.NewSimpleTxManager(w, &opConfig.BaseConfig.EthRpcClient, opConfig.BaseConfig.Logger,
81+
opConfig.Operator.Address)
8182
eigenMetrics := metrics.NewNoopMetrics()
8283
eigenLayerWriter, err := elcontracts.BuildELChainWriter(delegationManagerAddr, avsDirectoryAddr,
83-
&config.BaseConfig.EthRpcClient, config.BaseConfig.Logger, eigenMetrics, txMgr)
84+
&opConfig.BaseConfig.EthRpcClient, opConfig.BaseConfig.Logger, eigenMetrics, txMgr)
8485
if err != nil {
8586
return err
8687
}
8788

8889
_, err = eigenLayerWriter.DepositERC20IntoStrategy(context.Background(), strategyAddr, amount, true)
8990
if err != nil {
90-
config.BaseConfig.Logger.Errorf("Error depositing into strategy")
91+
opConfig.BaseConfig.Logger.Errorf("Error depositing into strategy")
9192
return err
9293
}
9394
return nil

operator/cmd/actions/register.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,20 @@ var RegisterCommand = &cli.Command{
2323
}
2424

2525
func registerOperatorMain(ctx *cli.Context) error {
26-
config := config.NewOperatorConfig(ctx.String(config.ConfigFileFlag.Name))
26+
operatorConfig := config.NewOperatorConfig(ctx.String(config.ConfigFileFlag.Name))
27+
ecdsaConfig := config.NewEcdsaConfig(ctx.String(config.ConfigFileFlag.Name), operatorConfig.BaseConfig.ChainId)
2728

2829
quorumNumbers := []byte{0}
2930

3031
// Generate salt and expiry
31-
privateKeyBytes := []byte(config.BlsConfig.KeyPair.PrivKey.String())
32+
privateKeyBytes := []byte(operatorConfig.BlsConfig.KeyPair.PrivKey.String())
3233
salt := [32]byte{}
3334

3435
copy(salt[:], crypto.Keccak256([]byte("churn"), []byte(time.Now().String()), quorumNumbers, privateKeyBytes))
3536

36-
err := operator.RegisterOperator(context.Background(), config, salt)
37+
err := operator.RegisterOperator(context.Background(), operatorConfig, ecdsaConfig, salt)
3738
if err != nil {
38-
config.BaseConfig.Logger.Error("Failed to register operator", "err", err)
39+
operatorConfig.BaseConfig.Logger.Error("Failed to register operator", "err", err)
3940
return err
4041
}
4142

operator/pkg/operator.go

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package operator
33
import (
44
"bytes"
55
"context"
6-
"crypto/ecdsa"
76
"encoding/hex"
87
"encoding/json"
98
"fmt"
@@ -48,7 +47,6 @@ type Operator struct {
4847
Address ethcommon.Address
4948
Socket string
5049
Timeout time.Duration
51-
PrivKey *ecdsa.PrivateKey
5250
KeyPair *bls.KeyPair
5351
OperatorId eigentypes.OperatorId
5452
avsSubscriber chainio.AvsSubscriber
@@ -75,7 +73,7 @@ const (
7573
func NewOperatorFromConfig(configuration config.OperatorConfig) (*Operator, error) {
7674
logger := configuration.BaseConfig.Logger
7775

78-
avsReader, err := chainio.NewAvsReaderFromConfig(configuration.BaseConfig, configuration.EcdsaConfig)
76+
avsReader, err := chainio.NewAvsReaderFromConfig(configuration.BaseConfig)
7977
if err != nil {
8078
log.Fatalf("Could not create AVS reader")
8179
}
@@ -84,21 +82,8 @@ func NewOperatorFromConfig(configuration config.OperatorConfig) (*Operator, erro
8482
if err != nil {
8583
log.Fatalf("Could not check if operator is registered")
8684
}
87-
8885
if !registered {
89-
log.Println("Operator is not registered with AlignedLayer AVS, registering...")
90-
quorumNumbers := []byte{0}
91-
92-
// Generate salt and expiry
93-
privateKeyBytes := []byte(configuration.BlsConfig.KeyPair.PrivKey.String())
94-
salt := [32]byte{}
95-
96-
copy(salt[:], crypto.Keccak256([]byte("churn"), []byte(time.Now().String()), quorumNumbers, privateKeyBytes))
97-
98-
err = RegisterOperator(context.Background(), &configuration, salt)
99-
if err != nil {
100-
log.Fatalf("Could not register operator")
101-
}
86+
log.Fatal("Operator not registered")
10287
}
10388

10489
avsSubscriber, err := chainio.NewAvsSubscriberFromConfig(configuration.BaseConfig)

operator/pkg/register.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,10 @@ import (
1515
func RegisterOperator(
1616
ctx context.Context,
1717
configuration *config.OperatorConfig,
18+
ecdsaConfig *config.EcdsaConfig,
1819
operatorToAvsRegistrationSigSalt [32]byte,
1920
) error {
20-
writer, err := chainio.NewAvsWriterFromConfig(configuration.BaseConfig, configuration.EcdsaConfig, nil)
21+
writer, err := chainio.NewAvsWriterFromConfig(configuration.BaseConfig, ecdsaConfig, nil)
2122
if err != nil {
2223
configuration.BaseConfig.Logger.Error("Failed to create AVS writer", "err", err)
2324
return err
@@ -27,7 +28,7 @@ func RegisterOperator(
2728

2829
quorumNumbers := types.QuorumNums{0}
2930

30-
_, err = writer.RegisterOperator(ctx, configuration.EcdsaConfig.PrivateKey,
31+
_, err = writer.RegisterOperator(ctx, ecdsaConfig.PrivateKey,
3132
configuration.BlsConfig.KeyPair,
3233
quorumNumbers, socket, true)
3334

0 commit comments

Comments
 (0)