Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Use `ValueEnum` for `--type` in `compile` command

Abierto Apto para principiantes
#345 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 2 días

@chukwudiikeh ya está trabajando en esto.

Desde el 9/10/2026.

  • #346 de @chukwudiikeh — abierto

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
82/100
Tipo de issue
Refactorización
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
rust
Área
cli

Línea de trabajo

Empieza por CompileCommand::script_type y por el manejo de compile en src/handlers/descriptor.rs, donde el brazo _ => devuelve "Invalid script type". Usa el enum DatabaseType en src/persister.rs como patrón para derivar clap::ValueEnum. Está terminado cuando las variantes del enum reemplazan la cadena, el match es exhaustivo sin brazo de respaldo, los valores de --type siguen mostrándose como sh, wsh, sh-wsh y tr, y las pruebas existentes de compile pasan.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

good first issue

CompileCommand::script_type is a String restricted by value_parser = ["sh", "wsh", "sh-wsh", "tr"], so clap already rejects anything else.
https://github.com/bitcoindevkit/bdk-cli/blob/4f4d8cafb3dd6a449aa587e520ece781128f0904/src/handlers/descriptor.rs#L73-L75

The _ => arm in execute returning "Invalid script type" is unreachable, it only exists because the compiler can't know that.
https://github.com/bitcoindevkit/bdk-cli/blob/4f4d8cafb3dd6a449aa587e520ece781128f0904/src/handlers/descriptor.rs#L116-L120

Replace the string with an enum deriving clap::ValueEnum (Sh, Wsh, ShWsh, Tr), so the match is exhaustive and the list of values lives in one place. clap renders variant names in kebab-case, so ShWsh stays sh-wsh and the CLI doesn't change. See DatabaseType in src/persister.rs for existing ValueEnum usage.

No behavior change expected, existing compile tests should keep passing.

Lenguaje dominante
Rust
Estrellas
143
Forks
98
Merge medio
6 d 8 h
PR fusionados (30 d)
6

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de bitcoindevkit/bdk-cli

Todos los issues de bitcoindevkit/bdk-cli

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.