Use miniscript::DescriptorPublicKey

This allows us to remove all our custom "ExtendedDescriptor" implementation since that is
now built directly in miniscript.
This commit is contained in:
Alekos Filini
2020-08-12 12:51:50 +02:00
parent ddc2bded99
commit 5777431135
19 changed files with 935 additions and 1763 deletions

View File

@@ -1,4 +1,4 @@
use bitcoin::{Address, OutPoint, Script, Txid};
use bitcoin::{Address, OutPoint};
#[derive(Debug)]
pub enum Error {
@@ -25,13 +25,7 @@ pub enum Error {
SpendingPolicyRequired,
InvalidPolicyPathError(crate::descriptor::policy::PolicyError),
// Signing errors (expected, received)
InputTxidMismatch((Txid, OutPoint)),
InputRedeemScriptMismatch((Script, Script)), // scriptPubKey, redeemScript
InputWitnessScriptMismatch((Script, Script)), // scriptPubKey, redeemScript
InputUnknownSegwitScript(Script),
InputMissingWitnessScript(usize),
MissingUTXO,
Signer(crate::wallet::signer::SignerError),
// Blockchain interface errors
Uncapable(crate::blockchain::Capability),
@@ -44,6 +38,7 @@ pub enum Error {
Descriptor(crate::descriptor::error::Error),
Encode(bitcoin::consensus::encode::Error),
Miniscript(miniscript::Error),
BIP32(bitcoin::util::bip32::Error),
Secp256k1(bitcoin::secp256k1::Error),
JSON(serde_json::Error),
@@ -75,8 +70,10 @@ impl_error!(
crate::descriptor::policy::PolicyError,
InvalidPolicyPathError
);
impl_error!(crate::wallet::signer::SignerError, Signer);
impl_error!(bitcoin::consensus::encode::Error, Encode);
impl_error!(miniscript::Error, Miniscript);
impl_error!(bitcoin::util::bip32::Error, BIP32);
impl_error!(bitcoin::secp256k1::Error, Secp256k1);
impl_error!(serde_json::Error, JSON);