@@ -79,6 +79,17 @@ export default {
7979 . setDescription ( "Get committee" )
8080 )
8181 )
82+ . addSubcommand ( ( subcommand ) =>
83+ subcommand
84+ . setName ( "add" )
85+ . setDescription ( "Add a validator" )
86+ . addStringOption ( ( option ) =>
87+ option
88+ . setName ( "address" )
89+ . setDescription ( "The validator to add" )
90+ . setRequired ( true )
91+ )
92+ )
8293 . addSubcommand ( ( subcommand ) =>
8394 subcommand
8495 . setName ( "remove" )
@@ -114,6 +125,7 @@ export default {
114125 interaction ,
115126 "Committee"
116127 ) ;
128+ return "Checked committee" ;
117129 } else if ( interaction . options . getSubcommand ( ) === "validators" ) {
118130 await paginate (
119131 filteredValidators ,
@@ -122,25 +134,52 @@ export default {
122134 interaction ,
123135 "Validators"
124136 ) ;
137+ return "Checked validators" ;
125138 } else if ( interaction . options . getSubcommand ( ) === "remove" ) {
126139 const address = interaction . options . getString ( "address" ) ;
127140 if ( ! address ) {
128141 await interaction . editReply ( {
129142 content : "Please provide an address to remove" ,
130143 } ) ;
131- return ;
144+ return `Failed` ;
132145 }
133146 await ValidatorService . removeValidator ( address ) ;
134147 await interaction . editReply ( {
135148 content : `Removed validator ${ address } ` ,
136149 } ) ;
150+ return "Removed validator" ;
151+ } else if ( interaction . options . getSubcommand ( ) === "add" ) {
152+ const address = interaction . options . getString ( "address" ) ;
153+
154+ if ( ! address ) {
155+ await interaction . editReply ( {
156+ content : "Please provide an address to remove" ,
157+ } ) ;
158+ return `Failed` ;
159+ }
160+
161+ // Basic address validation
162+ if ( ! address . match ( / ^ 0 x [ a - f A - F 0 - 9 ] { 40 } $ / ) ) {
163+ return interaction . reply ( {
164+ content : "Please provide a valid Ethereum address." ,
165+ flags : MessageFlags . Ephemeral ,
166+ } ) ;
167+ }
168+
169+ await ValidatorService . addValidator ( address ) ;
170+ await interaction . editReply ( {
171+ content : `Successfully added validator address: ${ address } ` ,
172+ } ) ;
173+ return `Added validator ${ address } ` ;
137174 }
138175 return ;
139176 } catch ( error ) {
140- console . error ( "Error in get-info command:" , error ) ;
141177 await interaction . editReply ( {
142- content : `Failed to get chain info ` ,
178+ content : `Failed with error: ${ error } ` ,
143179 } ) ;
180+ return `Failed with error: ${
181+ error instanceof Error && error . message
182+ } `;
144183 }
145184 } ,
146185} ;
0 commit comments