From c1f841b69a48253b0613c1ca2a131d1992f1a954 Mon Sep 17 00:00:00 2001 From: Omer Yacine Date: Tue, 22 Apr 2025 17:40:37 +0200 Subject: [PATCH] support parsing taproot output address types --- mm2src/mm2_bitcoin/rpc/src/v1/types/script.rs | 4 ++++ mm2src/mm2_bitcoin/script/src/script.rs | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/mm2src/mm2_bitcoin/rpc/src/v1/types/script.rs b/mm2src/mm2_bitcoin/rpc/src/v1/types/script.rs index 851744d667..c2a44d2211 100644 --- a/mm2src/mm2_bitcoin/rpc/src/v1/types/script.rs +++ b/mm2src/mm2_bitcoin/rpc/src/v1/types/script.rs @@ -13,6 +13,7 @@ pub enum ScriptType { NullData, WitnessScript, WitnessKey, + Taproot, // Qtum specific CallSender, CreateSender, @@ -36,6 +37,7 @@ impl From for ScriptType { GlobalScriptType::NullData => ScriptType::NullData, GlobalScriptType::WitnessScript => ScriptType::WitnessScript, GlobalScriptType::WitnessKey => ScriptType::WitnessKey, + GlobalScriptType::Taproot => ScriptType::Taproot, GlobalScriptType::CallSender => ScriptType::CallSender, GlobalScriptType::CreateSender => ScriptType::CreateSender, GlobalScriptType::Call => ScriptType::Call, @@ -60,6 +62,7 @@ impl Serialize for ScriptType { ScriptType::NullData => "nulldata".serialize(serializer), ScriptType::WitnessScript => "witness_v0_scripthash".serialize(serializer), ScriptType::WitnessKey => "witness_v0_keyhash".serialize(serializer), + ScriptType::Taproot => "witness_v1_taproot".serialize(serializer), ScriptType::CallSender => "call_sender".serialize(serializer), ScriptType::CreateSender => "create_sender".serialize(serializer), ScriptType::Call => "call".serialize(serializer), @@ -99,6 +102,7 @@ impl<'a> Deserialize<'a> for ScriptType { "nulldata" => Ok(ScriptType::NullData), "witness_v0_scripthash" => Ok(ScriptType::WitnessScript), "witness_v0_keyhash" => Ok(ScriptType::WitnessKey), + "witness_v1_taproot" => Ok(ScriptType::Taproot), "call_sender" => Ok(ScriptType::CallSender), "create_sender" => Ok(ScriptType::CreateSender), "call" => Ok(ScriptType::Call), diff --git a/mm2src/mm2_bitcoin/script/src/script.rs b/mm2src/mm2_bitcoin/script/src/script.rs index 4653919fd8..c5e4b57d0f 100644 --- a/mm2src/mm2_bitcoin/script/src/script.rs +++ b/mm2src/mm2_bitcoin/script/src/script.rs @@ -20,6 +20,7 @@ pub enum ScriptType { NullData, WitnessScript, WitnessKey, + Taproot, // Qtum specific CallSender, CreateSender, @@ -467,6 +468,9 @@ impl Script { let address_hash = AddressHashEnum::AddressHash(hash.into()); Ok(vec![ScriptAddress::new_p2wpkh(address_hash)]) }, + ScriptType::Taproot => { + Ok(vec![]) // TODO + }, ScriptType::CallSender => { Ok(vec![]) // TODO },