@@ -13,10 +13,10 @@ use rgb_lib::{
1313 utils:: BitcoinNetwork ,
1414 wallet:: {
1515 Address as RgbLibAddress , AssetCFA , AssetIFA , AssetNIA , AssetUDA , Assets ,
16- AssignmentsCollection , Balance , BlockTime , BtcBalance , Cosigner as CosignerData ,
17- DatabaseType , EmbeddedMedia , HubInfo , InflateBeginResult , InflateDetails ,
18- InitOperationResult , Invoice as RgbLibInvoice , InvoiceData as RgbLibInvoiceData , Media ,
19- Metadata , MultisigKeys , MultisigOnlineOptions ,
16+ AssignmentsCollection , Balance , BlockTime , BtcBalance , BurnBeginResult , BurnDetails ,
17+ Cosigner as CosignerData , DatabaseType , EmbeddedMedia , HubInfo , InflateBeginResult ,
18+ InflateDetails , InitOperationResult , Invoice as RgbLibInvoice ,
19+ InvoiceData as RgbLibInvoiceData , Media , Metadata , MultisigKeys , MultisigOnlineOptions ,
2020 MultisigVotingStatus as RgbLibMultisigVotingStatus , MultisigWallet as RgbLibMultisigWallet ,
2121 Online , OnlineOptions , Operation as RgbLibOperation , OperationInfo as RgbLibOperationInfo ,
2222 OperationResult , Outpoint , ProofOfReserves , PsbtInputInfo , PsbtInspection , PsbtOutputInfo ,
@@ -448,6 +448,24 @@ pub enum Operation {
448448 details : InflateDetails ,
449449 status : MultisigVotingStatus ,
450450 } ,
451+ BurnToReview {
452+ psbt : String ,
453+ details : BurnDetails ,
454+ status : MultisigVotingStatus ,
455+ } ,
456+ BurnPending {
457+ details : BurnDetails ,
458+ status : MultisigVotingStatus ,
459+ } ,
460+ BurnCompleted {
461+ txid : String ,
462+ details : BurnDetails ,
463+ status : MultisigVotingStatus ,
464+ } ,
465+ BurnDiscarded {
466+ details : BurnDetails ,
467+ status : MultisigVotingStatus ,
468+ } ,
451469 IssuanceCompleted {
452470 asset_id : String ,
453471 } ,
@@ -575,6 +593,32 @@ impl From<RgbLibOperation> for Operation {
575593 status : status. into ( ) ,
576594 }
577595 }
596+ RgbLibOperation :: BurnToReview {
597+ psbt,
598+ details,
599+ status,
600+ } => Operation :: BurnToReview {
601+ psbt,
602+ details,
603+ status : status. into ( ) ,
604+ } ,
605+ RgbLibOperation :: BurnPending { status, details } => Operation :: BurnPending {
606+ details,
607+ status : status. into ( ) ,
608+ } ,
609+ RgbLibOperation :: BurnCompleted {
610+ txid,
611+ details,
612+ status,
613+ } => Operation :: BurnCompleted {
614+ txid,
615+ details,
616+ status : status. into ( ) ,
617+ } ,
618+ RgbLibOperation :: BurnDiscarded { details, status } => Operation :: BurnDiscarded {
619+ details,
620+ status : status. into ( ) ,
621+ } ,
578622 RgbLibOperation :: IssuanceCompleted { asset_id } => {
579623 Operation :: IssuanceCompleted { asset_id }
580624 }
@@ -676,6 +720,32 @@ impl From<Operation> for RgbLibOperation {
676720 status : status. into ( ) ,
677721 }
678722 }
723+ Operation :: BurnToReview {
724+ psbt,
725+ details,
726+ status,
727+ } => RgbLibOperation :: BurnToReview {
728+ psbt,
729+ details,
730+ status : status. into ( ) ,
731+ } ,
732+ Operation :: BurnPending { status, details } => RgbLibOperation :: BurnPending {
733+ details,
734+ status : status. into ( ) ,
735+ } ,
736+ Operation :: BurnCompleted {
737+ txid,
738+ details,
739+ status,
740+ } => RgbLibOperation :: BurnCompleted {
741+ txid,
742+ details,
743+ status : status. into ( ) ,
744+ } ,
745+ Operation :: BurnDiscarded { details, status } => RgbLibOperation :: BurnDiscarded {
746+ details,
747+ status : status. into ( ) ,
748+ } ,
679749 Operation :: IssuanceCompleted { asset_id } => {
680750 RgbLibOperation :: IssuanceCompleted { asset_id }
681751 }
@@ -1049,6 +1119,45 @@ impl Wallet {
10491119 self . _get_wallet ( ) . go_online ( online_options)
10501120 }
10511121
1122+ fn burn (
1123+ & self ,
1124+ online : Online ,
1125+ asset_id : String ,
1126+ amount : u64 ,
1127+ fee_rate : u64 ,
1128+ min_confirmations : u8 ,
1129+ ) -> Result < OperationResult , RgbLibError > {
1130+ self . _get_wallet ( )
1131+ . burn ( online, asset_id, amount, fee_rate, min_confirmations)
1132+ }
1133+
1134+ fn burn_begin (
1135+ & self ,
1136+ online : Online ,
1137+ asset_id : String ,
1138+ amount : u64 ,
1139+ fee_rate : u64 ,
1140+ min_confirmations : u8 ,
1141+ dry_run : bool ,
1142+ ) -> Result < BurnBeginResult , RgbLibError > {
1143+ self . _get_wallet ( ) . burn_begin (
1144+ online,
1145+ asset_id,
1146+ amount,
1147+ fee_rate,
1148+ min_confirmations,
1149+ dry_run,
1150+ )
1151+ }
1152+
1153+ fn burn_end (
1154+ & self ,
1155+ online : Online ,
1156+ signed_psbt : String ,
1157+ ) -> Result < OperationResult , RgbLibError > {
1158+ self . _get_wallet ( ) . burn_end ( online, signed_psbt)
1159+ }
1160+
10521161 fn inflate (
10531162 & self ,
10541163 online : Online ,
@@ -1458,6 +1567,18 @@ impl MultisigWallet {
14581567 self . _get_wallet ( ) . hub_info ( online)
14591568 }
14601569
1570+ fn burn_init (
1571+ & self ,
1572+ online : Online ,
1573+ asset_id : String ,
1574+ amount : u64 ,
1575+ fee_rate : u64 ,
1576+ min_confirmations : u8 ,
1577+ ) -> Result < InitOperationResult , RgbLibError > {
1578+ self . _get_wallet ( )
1579+ . burn_init ( online, asset_id, amount, fee_rate, min_confirmations)
1580+ }
1581+
14611582 fn inflate_init (
14621583 & self ,
14631584 online : Online ,
0 commit comments