Skip to content

Commit 7c45b17

Browse files
committed
add to client + control
1 parent 3984de9 commit 7c45b17

File tree

2 files changed

+49
-0
lines changed

2 files changed

+49
-0
lines changed

client/client.go

+10
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ type Client interface {
3737
AddPermissionlessValidator(ctx context.Context, validatorSpec []*rpcpb.PermissionlessStakerSpec) (*rpcpb.AddPermissionlessValidatorResponse, error)
3838
AddPermissionlessDelegator(ctx context.Context, validatorSpec []*rpcpb.PermissionlessStakerSpec) (*rpcpb.AddPermissionlessDelegatorResponse, error)
3939
RemoveSubnetValidator(ctx context.Context, validatorSpec []*rpcpb.RemoveSubnetValidatorSpec) (*rpcpb.RemoveSubnetValidatorResponse, error)
40+
AddSubnetValidators(ctx context.Context, validatorSpec []*rpcpb.SubnetValidatorsSpec) (*rpcpb.AddSubnetValidatorsResponse, error)
4041
Health(ctx context.Context) (*rpcpb.HealthResponse, error)
4142
WaitForHealthy(ctx context.Context) (*rpcpb.WaitForHealthyResponse, error)
4243
URIs(ctx context.Context) ([]string, error)
@@ -203,6 +204,15 @@ func (c *client) RemoveSubnetValidator(ctx context.Context, validatorSpec []*rpc
203204
return c.controlc.RemoveSubnetValidator(ctx, req)
204205
}
205206

207+
func (c *client) AddSubnetValidators(ctx context.Context, validatorSpec []*rpcpb.SubnetValidatorsSpec) (*rpcpb.AddSubnetValidatorsResponse, error) {
208+
req := &rpcpb.AddSubnetValidatorsRequest{
209+
ValidatorsSpec: validatorSpec,
210+
}
211+
212+
c.log.Info("add subnet validators")
213+
return c.controlc.AddSubnetValidators(ctx, req)
214+
}
215+
206216
func (c *client) Health(ctx context.Context) (*rpcpb.HealthResponse, error) {
207217
c.log.Info("health")
208218
return c.controlc.Health(ctx, &rpcpb.HealthRequest{})

cmd/control/control.go

+39
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ func NewCommand() *cobra.Command {
6363
newTransformElasticSubnetsCommand(),
6464
newAddPermissionlessValidatorCommand(),
6565
newAddPermissionlessDelegatorCommand(),
66+
newAddSubnetValidatorsCommand(),
6667
newRemoveSubnetValidatorCommand(),
6768
newHealthCommand(),
6869
newWaitForHealthyCommand(),
@@ -444,6 +445,16 @@ func newAddPermissionlessValidatorCommand() *cobra.Command {
444445
return cmd
445446
}
446447

448+
func newAddSubnetValidatorsCommand() *cobra.Command {
449+
cmd := &cobra.Command{
450+
Use: "add-subnet-validators validatorsSpec [options]",
451+
Short: "Adds subnet validators",
452+
RunE: addSubnetValidatorsFunc,
453+
Args: cobra.ExactArgs(1),
454+
}
455+
return cmd
456+
}
457+
447458
func newRemoveSubnetValidatorCommand() *cobra.Command {
448459
cmd := &cobra.Command{
449460
Use: "remove-subnet-validator removeValidatorSpec [options]",
@@ -538,6 +549,34 @@ func addPermissionlessValidatorFunc(_ *cobra.Command, args []string) error {
538549
return nil
539550
}
540551

552+
func addSubnetValidatorsFunc(_ *cobra.Command, args []string) error {
553+
cli, err := newClient()
554+
if err != nil {
555+
return err
556+
}
557+
defer cli.Close()
558+
559+
validatorSpecsStr := args[0]
560+
561+
validatorSpecs := []*rpcpb.SubnetValidatorsSpec{}
562+
if err := json.Unmarshal([]byte(validatorSpecsStr), &validatorSpecs); err != nil {
563+
return err
564+
}
565+
566+
ctx := getAsyncContext()
567+
568+
info, err := cli.AddSubnetValidators(
569+
ctx,
570+
validatorSpecs,
571+
)
572+
if err != nil {
573+
return err
574+
}
575+
576+
ux.Print(log, logging.Green.Wrap("add-subnet-validators response: %+v"), info)
577+
return nil
578+
}
579+
541580
func removeSubnetValidatorFunc(_ *cobra.Command, args []string) error {
542581
cli, err := newClient()
543582
if err != nil {

0 commit comments

Comments
 (0)