github.com/ChainSafe/chainbridge-core@v1.4.2/chains/evm/cli/admin/remove-relayer.go (about)

     1  package admin
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/ChainSafe/chainbridge-core/chains/evm/cli/flags"
     7  	"github.com/ChainSafe/chainbridge-core/chains/evm/cli/logger"
     8  	"github.com/ChainSafe/chainbridge-core/util"
     9  	"github.com/ethereum/go-ethereum/common"
    10  	"github.com/rs/zerolog/log"
    11  	"github.com/spf13/cobra"
    12  )
    13  
    14  var removeRelayerCmd = &cobra.Command{
    15  	Use:   "remove-relayer",
    16  	Short: "Remove an existing relayer",
    17  	Long:  "The remove-relayer subcommand removes an existing relayer",
    18  	PreRun: func(cmd *cobra.Command, args []string) {
    19  		logger.LoggerMetadata(cmd.Name(), cmd.Flags())
    20  	},
    21  	PersistentPreRunE: func(cmd *cobra.Command, args []string) error {
    22  		return util.CallPersistentPreRun(cmd, args)
    23  	},
    24  	RunE: removeRelayer,
    25  	Args: func(cmd *cobra.Command, args []string) error {
    26  		err := ValidateRemoveRelayerFlags(cmd, args)
    27  		if err != nil {
    28  			return err
    29  		}
    30  		return nil
    31  	},
    32  }
    33  
    34  func BindRemoveRelayerFlags(cmd *cobra.Command) {
    35  	cmd.Flags().StringVar(&Relayer, "relayer", "", "Address to remove")
    36  	cmd.Flags().StringVar(&Bridge, "bridge", "", "Bridge contract address")
    37  	flags.MarkFlagsAsRequired(cmd, "relayer", "bridge")
    38  }
    39  func init() {
    40  	BindRemoveRelayerFlags(removeRelayerCmd)
    41  }
    42  func ValidateRemoveRelayerFlags(cmd *cobra.Command, args []string) error {
    43  	if !common.IsHexAddress(Relayer) {
    44  		return fmt.Errorf("invalid relayer address %s", Relayer)
    45  	}
    46  	if !common.IsHexAddress(Bridge) {
    47  		return fmt.Errorf("invalid bridge address %s", Bridge)
    48  	}
    49  	return nil
    50  }
    51  
    52  func removeRelayer(cmd *cobra.Command, args []string) error {
    53  	log.Debug().Msgf(`
    54  Removing relayer
    55  Relayer address: %s
    56  Bridge address: %s`, Relayer, Bridge)
    57  	return nil
    58  }
    59  
    60  /*
    61  func removeRelayer(cctx *cli.Context) error {
    62  	url := cctx.String("url")
    63  	gasLimit := cctx.Uint64("gasLimit")
    64  	gasPrice := cctx.Uint64("gasPrice")
    65  	sender, err := cliutils.DefineSender(cctx)
    66  	if err != nil {
    67  		return err
    68  	}
    69  	bridgeAddress, err := cliutils.DefineBridgeAddress(cctx)
    70  	if err != nil {
    71  		return err
    72  	}
    73  	relayer := cctx.String("relayer")
    74  	if !common.IsHexAddress(relayer) {
    75  		return fmt.Errorf("invalid bridge address %s", relayer)
    76  	}
    77  	relayerAddress := common.HexToAddress(relayer)
    78  	ethClient, err := client.NewClient(url, false, sender, big.NewInt(0).SetUint64(gasLimit), big.NewInt(0).SetUint64(gasPrice), big.NewFloat(1))
    79  	if err != nil {
    80  		return err
    81  	}
    82  	err = utils.AdminRemoveRelayer(ethClient, bridgeAddress, relayerAddress)
    83  	if err != nil {
    84  		return err
    85  	}
    86  	log.Info().Msgf("Address %s is relayer now", relayerAddress.String())
    87  	return nil
    88  }
    89  */