github.com/ChainSafe/chainbridge-core@v1.4.2/chains/evm/cli/admin/remove-admin.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 removeAdminCmd = &cobra.Command{ 15 Use: "remove-admin", 16 Short: "Remove an existing admin", 17 Long: "The remove-admin subcommand removes an existing admin", 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: removeAdmin, 25 Args: func(cmd *cobra.Command, args []string) error { 26 err := ValidateRemoveAdminFlags(cmd, args) 27 if err != nil { 28 return err 29 } 30 return nil 31 }, 32 } 33 34 func BindRemoveAdminFlags(cmd *cobra.Command) { 35 cmd.Flags().StringVar(&Admin, "admin", "", "Address to remove") 36 cmd.Flags().StringVar(&Bridge, "bridge", "", "Bridge contract address") 37 flags.MarkFlagsAsRequired(cmd, "admin", "bridge") 38 } 39 40 func init() { 41 BindRemoveAdminFlags(removeAdminCmd) 42 } 43 func ValidateRemoveAdminFlags(cmd *cobra.Command, args []string) error { 44 if !common.IsHexAddress(Admin) { 45 return fmt.Errorf("invalid admin address %s", Admin) 46 } 47 if !common.IsHexAddress(Bridge) { 48 return fmt.Errorf("invalid bridge address %s", Bridge) 49 } 50 return nil 51 } 52 53 func removeAdmin(cmd *cobra.Command, args []string) error { 54 55 log.Debug().Msgf(` 56 Removing admin 57 Admin address: %s 58 Bridge address: %s`, Admin, Bridge) 59 return nil 60 } 61 62 /* 63 func removeAdmin(cctx *cli.Context) error { 64 url := cctx.String("url") 65 gasLimit := cctx.Uint64("gasLimit") 66 gasPrice := cctx.Uint64("gasPrice") 67 sender, err := cliutils.DefineSender(cctx) 68 if err != nil { 69 return err 70 } 71 72 bridgeAddress, err := cliutils.DefineBridgeAddress(cctx) 73 if err != nil { 74 return err 75 } 76 77 admin := cctx.String("admin") 78 if !common.IsHexAddress(admin) { 79 return fmt.Errorf("invalid admin address %s", admin) 80 } 81 adminAddress := common.HexToAddress(admin) 82 83 ethClient, err := client.NewClient(url, false, sender, big.NewInt(0).SetUint64(gasLimit), big.NewInt(0).SetUint64(gasPrice), big.NewFloat(1)) 84 if err != nil { 85 return err 86 } 87 err = utils.AdminRemoveAdmin(ethClient, bridgeAddress, adminAddress) 88 if err != nil { 89 return err 90 } 91 log.Info().Msgf("Address %s is removed from admins", adminAddress.String()) 92 return nil 93 } 94 */