pub fn create_psbt<D: BatchDatabase>(
	wallet: &Wallet<D>,
	stacks_chain_tip: BlockId,
	bitcoin_network: BitcoinNetwork,
	recipient_bitcoin_address: &BitcoinAddress,
	amount: u64,
) -> SBTCResult<PartiallySignedTransaction> {
	let outputs = create_outputs(
		stacks_chain_tip,
		bitcoin_network,
		recipient_bitcoin_address,
		amount,
	)?;

	let mut tx_builder = wallet.build_tx();

	for (script, amount) in outputs.clone() {
		tx_builder.add_recipient(script, amount);
	}

	let (mut partial_tx, _) = tx_builder.finish().map_err(|err| {
        SBTCError::BDKError(
            "Could not build partially signed withdrawal fulfillment transaction",
            err,
        )
    })?;

	partial_tx.unsigned_tx.output =
		reorder_outputs(partial_tx.unsigned_tx.output, outputs);

	Ok(partial_tx)
}
Construct a withdrawal fulfillment partially signed transaction
sbtc-core/src/operations/op_return/withdrawal_fulfillment.rs