pub fn deposit(
	depositor_private_key: PrivateKey,
	recipient: PrincipalData,
	amount: u64,
	sbtc_address: &BitcoinAddress,
) -> SBTCResult<Transaction> {
	let wallet = setup_wallet(depositor_private_key)?;

	let mut psbt = create_partially_signed_deposit_transaction(
		&wallet,
		recipient,
		sbtc_address,
		amount,
		depositor_private_key.network,
	)?;

	wallet
		.sign(&mut psbt, SignOptions::default())
		.map_err(|err| {
			SBTCError::BDKError("Could not sign transaction", err)
		})?;

	Ok(psbt.extract_tx())
}
Construct a BTC transaction containing the provided sBTC deposit data
sbtc-core/src/operations/op_return/deposit.rs