fix: Redeem XMR to internal main wallet, not temp wallet

This commit is contained in:
Binarybaron 2025-07-04 16:43:12 +02:00
parent 7b67dce140
commit 38332ab79f
3 changed files with 10 additions and 5 deletions

View file

@ -445,11 +445,8 @@ impl WalletHandle {
) -> anyhow::Result<Vec<TxReceipt>> {
tracing::debug!(addresses=?addresses, percentages=?percentages, "Sweeping multi");
let primary_address = self.main_address().await;
let addresses = addresses.iter().map(|address| address.unwrap_or(primary_address));
let addresses: Vec<_> = addresses.collect();
let percentages = percentages.to_vec();
let addresses = addresses.to_vec();
self.call(move |wallet| wallet.sweep_multi(&addresses, &percentages))
.await

View file

@ -371,6 +371,12 @@ impl MoneroAddressPool {
Ok(())
}
/// Returns
pub fn fill_empty_addresses(&self, primary_address: monero::Address) -> Vec<monero::Address> {
self.0.iter().map(|address| address.address().unwrap_or(primary_address)).collect()
}
}
impl From<::monero::Address> for MoneroAddressPool {

View file

@ -755,9 +755,11 @@ impl State5 {
tracing::debug!(%swap_id, receive_address=?monero_receive_pool, "Sweeping Monero to receive address");
let main_address = monero_wallet.main_wallet().await.main_address().await;
let tx_hashes = wallet
.sweep_multi(
&monero_receive_pool.addresses(),
&monero_receive_pool.fill_empty_addresses(main_address),
&monero_receive_pool.percentages(),
)
.await