Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Expose remaining SignOptions fields in the wallet sign command

Aberta Para iniciantes
#358 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 2 dias

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
78/100
Tipo de issue
Funcionalidade
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
rust
Domínio
cli

Direção de pesquisa

A issue diz que a alteração se limita a SignCommand; comece lendo as definições dos argumentos e o método execute. Adicione opções de CLI para os campos listados de SignOptions, preservando os padrões da biblioteca quando as flags forem omitidas, e determine como serializar TapLeavesOptions. O trabalho estará concluído quando os usuários da CLI puderem definir cada campo e as opções omitidas mantiverem seus padrões.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

enhancement

Describe the enhancement

The wallet sign command only exposes assume_height and trust_witness_utxo. The remaining fields on bdk_wallet::SignOptions: allow_all_sighashes, try_finalize, sign_with_tap_internal_key, and allow_grinding, tap_leaves_options are fixed at their defaults, so CLI users have no way to change them. This request adds a flag for each, using Option<bool> and Option<TapLeavesOptions> for tap_leaves_options so that omitting a flag preserves the library default.

Use case

allow_all_sighashes is needed to sign PSBTs using anything other than SIGHASH_ALL, which currently fails through the CLI. try_finalize = false is needed for multisig, where finalizing after the first signature blocks the second signer from adding theirs. remove_partial_sigs = false preserves partial signatures between signing rounds. sign_with_tap_internal_key and allow_grinding are useful for Taproot debugging and signature comparison. Together these make the CLI usable for collaborative signing, which is currently only possible by calling the library directly.

Additional context

The change is confined to SignCommand. Each field follows the existing pattern:

#[arg(env = "ALLOW_ALL_SIGHASHES", long = "allow_all_sighashes")]
pub allow_all_sighashes: Option<bool>,
// Other args

and feeds into SignOptions in execute:

let signopt = SignOptions {
    assume_height: self.assume_height,
    trust_witness_utxo: self.trust_witness_utxo.unwrap_or(false),
    allow_all_sighashes: self.allow_all_sighashes.unwrap_or(false),
    tap_leaves_options: self.tap_leaves_options.unwrap_or_default(),
    try_finalize: self.try_finalize.unwrap_or_default(),
    sign_with_tap_internal_key: self.sign_with_tap_internal_key.unwrap_or_default(),
    allow_grinding: self.allow_grinding.unwrap_or_default(),
};

tap_leaves_options would require a manual serializer though.

Linguagem predominante
Rust
Estrelas
143
Forks
103
Merge médio
2d 9h
PRs com merge (30d)
5

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de bitcoindevkit/bdk-cli

Todas as issues de bitcoindevkit/bdk-cli

Issues semelhantes

Mais issues de Rust

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.