@@ -2,6 +2,7 @@ use crate::bitcoin::{
22 Address , Amount , BlockHash , DescriptorId , HashableOutPoint , OutPoint , Script , Transaction ,
33 TxOut , Txid ,
44} ;
5+ use crate :: descriptor:: Descriptor ;
56use crate :: error:: { CreateTxError , RequestBuilderError } ;
67
78use bdk_core:: bitcoin:: absolute:: LockTime as BdkLockTime ;
@@ -902,3 +903,63 @@ impl From<TxGraphChangeSet> for bdk_wallet::chain::tx_graph::ChangeSet<BdkConfir
902903 }
903904 }
904905}
906+
907+ #[ derive( Debug , Clone , uniffi:: Record ) ]
908+ pub struct ChangeSet {
909+ pub descriptor : Option < Arc < Descriptor > > ,
910+ pub change_descriptor : Option < Arc < Descriptor > > ,
911+ pub network : Option < bdk_wallet:: bitcoin:: Network > ,
912+ pub local_chain : LocalChainChangeSet ,
913+ pub tx_graph : TxGraphChangeSet ,
914+ pub indexer : IndexerChangeSet ,
915+ }
916+
917+ impl From < ChangeSet > for bdk_wallet:: ChangeSet {
918+ fn from ( value : ChangeSet ) -> Self {
919+ let descriptor = value. descriptor . map ( |d| d. extended_descriptor . clone ( ) ) ;
920+ let change_descriptor = value
921+ . change_descriptor
922+ . map ( |d| d. extended_descriptor . clone ( ) ) ;
923+ let network = value. network ;
924+ let local_chain = value. local_chain . into ( ) ;
925+ let tx_graph = value. tx_graph . into ( ) ;
926+ let indexer = value. indexer . into ( ) ;
927+ Self {
928+ descriptor,
929+ change_descriptor,
930+ network,
931+ local_chain,
932+ tx_graph,
933+ indexer,
934+ }
935+ }
936+ }
937+
938+ impl From < bdk_wallet:: ChangeSet > for ChangeSet {
939+ fn from ( value : bdk_wallet:: ChangeSet ) -> Self {
940+ let descriptor = value. descriptor . map ( |d| {
941+ Arc :: new ( Descriptor {
942+ extended_descriptor : d,
943+ key_map : BTreeMap :: new ( ) ,
944+ } )
945+ } ) ;
946+ let change_descriptor = value. change_descriptor . map ( |d| {
947+ Arc :: new ( Descriptor {
948+ extended_descriptor : d,
949+ key_map : BTreeMap :: new ( ) ,
950+ } )
951+ } ) ;
952+ let network = value. network ;
953+ let local_chain = value. local_chain . into ( ) ;
954+ let tx_graph = value. tx_graph . into ( ) ;
955+ let indexer = value. indexer . into ( ) ;
956+ Self {
957+ descriptor,
958+ change_descriptor,
959+ network,
960+ local_chain,
961+ tx_graph,
962+ indexer,
963+ }
964+ }
965+ }
0 commit comments