[repl] Add broadcast command
This commit is contained in:
		
							parent
							
								
									f605f4b34d
								
							
						
					
					
						commit
						3895b30083
					
				@ -160,6 +160,18 @@ fn main() {
 | 
			
		||||
                        .takes_value(true)
 | 
			
		||||
                        .number_of_values(1)
 | 
			
		||||
                        .required(true),
 | 
			
		||||
                ))
 | 
			
		||||
        .subcommand(
 | 
			
		||||
            SubCommand::with_name("broadcast")
 | 
			
		||||
                .about("Extracts the finalized transaction from a PSBT and broadcasts it to the network")
 | 
			
		||||
                .arg(
 | 
			
		||||
                    Arg::with_name("psbt")
 | 
			
		||||
                        .long("psbt")
 | 
			
		||||
                        .value_name("BASE64_PSBT")
 | 
			
		||||
                        .help("Sets the PSBT to broadcast")
 | 
			
		||||
                        .takes_value(true)
 | 
			
		||||
                        .number_of_values(1)
 | 
			
		||||
                        .required(true),
 | 
			
		||||
                ));
 | 
			
		||||
 | 
			
		||||
    let mut repl_app = app.clone().setting(AppSettings::NoBinaryName);
 | 
			
		||||
@ -309,6 +321,12 @@ fn main() {
 | 
			
		||||
            if finalized {
 | 
			
		||||
                println!("Extracted: {}", serialize_hex(&psbt.extract_tx()));
 | 
			
		||||
            }
 | 
			
		||||
        } else if let Some(sub_matches) = matches.subcommand_matches("broadcast") {
 | 
			
		||||
            let psbt = base64::decode(sub_matches.value_of("psbt").unwrap()).unwrap();
 | 
			
		||||
            let psbt: PartiallySignedTransaction = deserialize(&psbt).unwrap();
 | 
			
		||||
            let (txid, _) = wallet.broadcast(psbt).unwrap();
 | 
			
		||||
 | 
			
		||||
            println!("TXID: {}", txid);
 | 
			
		||||
        }
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1062,7 +1062,7 @@ where
 | 
			
		||||
        Ok(())
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    pub fn broadcast(&mut self, psbt: PSBT) -> Result<Transaction, Error> {
 | 
			
		||||
    pub fn broadcast(&self, psbt: PSBT) -> Result<(Txid, Transaction), Error> {
 | 
			
		||||
        let extracted = psbt.extract_tx();
 | 
			
		||||
        self.client
 | 
			
		||||
            .as_ref()
 | 
			
		||||
@ -1070,6 +1070,6 @@ where
 | 
			
		||||
            .borrow_mut()
 | 
			
		||||
            .transaction_broadcast(&extracted)?;
 | 
			
		||||
 | 
			
		||||
        Ok(extracted)
 | 
			
		||||
        Ok((extracted.txid(), extracted))
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user