Especificamente, a questão é como os descritores funcionam. Sabemos mais ou menos o que são, mas não sabemos como funcionam. Por exemplo, ao tentar desbloquear uma saída que contém um descritor e um miniscript, não entendemos como usá-los para desbloquear a saída de uma nova transação que criamos.
Estou anexando um pequeno trecho de código que estamos desenvolvendo. Especificamente, na linha 54, não entendemos como o parâmetro signersPubKey funciona. A primeira imagem mostra como criar um endereço com condições de gastos que você pode ver na apólice na linha 17. A segunda imagem mostra como fazer uma transação que desbloqueia os fundos do endereço anterior. Na linha 60 desta última imagem, podemos ver signersPubKey novamente. Estamos chegando a conclusão que na primeira imagem, ao gerar o endereço, o descritor que criamos com signersPubKey, SignersPubKey realmente não faz nada, e na segunda imagem, ao assinar a transação, o descritor realmente usa o parâmetro signersPubKey , mas não temos certeza.
Isto é o que a página do GitHub da biblioteca de descritores que estamos usando diz sobre SignersPubKey, mas não entendemos completamente:
“A última parte a explicar do bloco de código acima é que, quando um descritor possui vários caminhos de gastos, o usuário precisa definir qual deles usar. Isso é feito passando as chaves públicas que serão usadas para assinar a transação usando a variável signersPubKeys. O script de desbloqueio correspondente (a testemunha do script, neste caso) será calculado posteriormente a partir dessas informações ao finalizar a transação. Observe que, para testar diferentes configurações, você pode definir a variável EMERGENCY_RECOVERY como verdadeira ou falsa para frente e para trás.”