diff --git a/swap/src/alice/steps.rs b/swap/src/alice/steps.rs index 18e73efd..d28d7a6d 100644 --- a/swap/src/alice/steps.rs +++ b/swap/src/alice/steps.rs @@ -19,8 +19,8 @@ use xmr_btc::{ alice, alice::State3, bitcoin::{ - poll_until_block_height_is_gte, BlockHeight, BroadcastSignedTransaction, - EncryptedSignature, GetRawTransaction, TransactionBlockHeight, TxCancel, TxLock, TxRefund, + poll_until_block_height_is_gte, BroadcastSignedTransaction, EncryptedSignature, + GetBlockHeight, GetRawTransaction, TransactionBlockHeight, TxCancel, TxLock, TxRefund, WaitForTransactionFinality, WatchForRawTransaction, }, config::Config, @@ -212,7 +212,7 @@ pub async fn publish_cancel_transaction( bitcoin_wallet: Arc, ) -> Result where - W: GetRawTransaction + TransactionBlockHeight + BlockHeight + BroadcastSignedTransaction, + W: GetRawTransaction + TransactionBlockHeight + GetBlockHeight + BroadcastSignedTransaction, { // First wait for cancel timelock to expire let tx_lock_height = bitcoin_wallet @@ -259,7 +259,7 @@ pub async fn wait_for_bitcoin_refund( bitcoin_wallet: Arc, ) -> Result<(bitcoin::TxRefund, Option)> where - W: BlockHeight + WatchForRawTransaction, + W: GetBlockHeight + WatchForRawTransaction, { let punish_timelock_expired = poll_until_block_height_is_gte(bitcoin_wallet.as_ref(), cancel_tx_height + punish_timelock); diff --git a/swap/src/bitcoin.rs b/swap/src/bitcoin.rs index 5dfc8edd..6e92830f 100644 --- a/swap/src/bitcoin.rs +++ b/swap/src/bitcoin.rs @@ -8,7 +8,7 @@ use std::time::Duration; use tokio::time::interval; use xmr_btc::{ bitcoin::{ - BlockHeight, BroadcastSignedTransaction, BuildTxLockPsbt, SignTxLock, + BroadcastSignedTransaction, BuildTxLockPsbt, GetBlockHeight, SignTxLock, TransactionBlockHeight, WatchForRawTransaction, }, config::Config, @@ -132,8 +132,8 @@ impl GetRawTransaction for Wallet { } #[async_trait] -impl BlockHeight for Wallet { - async fn block_height(&self) -> u32 { +impl GetBlockHeight for Wallet { + async fn get_block_height(&self) -> u32 { (|| async { Ok(self.inner.client.getblockcount().await?) }) .retry(ConstantBackoff::new(Duration::from_secs(1))) .await diff --git a/xmr-btc/src/alice.rs b/xmr-btc/src/alice.rs index 52418c51..ae9882c7 100644 --- a/xmr-btc/src/alice.rs +++ b/xmr-btc/src/alice.rs @@ -29,7 +29,7 @@ use tokio::{sync::Mutex, time::timeout}; use tracing::{error, info}; pub mod message; use crate::bitcoin::{ - current_epoch, wait_for_cancel_timelock_to_expire, BlockHeight, TransactionBlockHeight, + current_epoch, wait_for_cancel_timelock_to_expire, GetBlockHeight, TransactionBlockHeight, }; pub use message::{Message, Message0, Message1, Message2}; @@ -90,7 +90,7 @@ pub fn action_generator( ) -> GenBoxed where N: ReceiveBitcoinRedeemEncsig + Send + 'static, - B: bitcoin::BlockHeight + B: bitcoin::GetBlockHeight + bitcoin::TransactionBlockHeight + bitcoin::WatchForRawTransaction + Send @@ -684,7 +684,7 @@ impl State3 { pub async fn wait_for_cancel_timelock_to_expire(&self, bitcoin_wallet: &W) -> Result<()> where - W: WatchForRawTransaction + TransactionBlockHeight + BlockHeight, + W: WatchForRawTransaction + TransactionBlockHeight + GetBlockHeight, { wait_for_cancel_timelock_to_expire( bitcoin_wallet, @@ -696,7 +696,7 @@ impl State3 { pub async fn expired_timelocks(&self, bitcoin_wallet: &W) -> Result where - W: WatchForRawTransaction + TransactionBlockHeight + BlockHeight, + W: WatchForRawTransaction + TransactionBlockHeight + GetBlockHeight, { current_epoch( bitcoin_wallet, diff --git a/xmr-btc/src/bitcoin.rs b/xmr-btc/src/bitcoin.rs index cbf22800..26a50c62 100644 --- a/xmr-btc/src/bitcoin.rs +++ b/xmr-btc/src/bitcoin.rs @@ -201,8 +201,8 @@ pub trait WaitForTransactionFinality { } #[async_trait] -pub trait BlockHeight { - async fn block_height(&self) -> u32; +pub trait GetBlockHeight { + async fn get_block_height(&self) -> u32; } #[async_trait] @@ -238,9 +238,9 @@ pub fn recover(S: PublicKey, sig: Signature, encsig: EncryptedSignature) -> Resu pub async fn poll_until_block_height_is_gte(client: &B, target: u32) where - B: BlockHeight, + B: GetBlockHeight, { - while client.block_height().await < target { + while client.get_block_height().await < target { tokio::time::delay_for(std::time::Duration::from_secs(1)).await; } } @@ -252,9 +252,9 @@ pub async fn current_epoch( lock_tx_id: ::bitcoin::Txid, ) -> anyhow::Result where - W: WatchForRawTransaction + TransactionBlockHeight + BlockHeight, + W: WatchForRawTransaction + TransactionBlockHeight + GetBlockHeight, { - let current_block_height = bitcoin_wallet.block_height().await; + let current_block_height = bitcoin_wallet.get_block_height().await; let lock_tx_height = bitcoin_wallet.transaction_block_height(lock_tx_id).await; let cancel_timelock_height = lock_tx_height + cancel_timelock; let punish_timelock_height = cancel_timelock_height + punish_timelock; @@ -275,7 +275,7 @@ pub async fn wait_for_cancel_timelock_to_expire( lock_tx_id: ::bitcoin::Txid, ) -> Result<()> where - W: WatchForRawTransaction + TransactionBlockHeight + BlockHeight, + W: WatchForRawTransaction + TransactionBlockHeight + GetBlockHeight, { let tx_lock_height = bitcoin_wallet.transaction_block_height(lock_tx_id).await; diff --git a/xmr-btc/src/bob.rs b/xmr-btc/src/bob.rs index f879de28..4b175793 100644 --- a/xmr-btc/src/bob.rs +++ b/xmr-btc/src/bob.rs @@ -35,8 +35,8 @@ use tracing::error; pub mod message; use crate::{ bitcoin::{ - current_epoch, wait_for_cancel_timelock_to_expire, BlockHeight, GetRawTransaction, Network, - TransactionBlockHeight, + current_epoch, wait_for_cancel_timelock_to_expire, GetBlockHeight, GetRawTransaction, + Network, TransactionBlockHeight, }, monero::{CreateWalletForOutput, WatchForTransfer}, }; @@ -95,7 +95,7 @@ pub fn action_generator( where N: ReceiveTransferProof + Send + 'static, M: monero::WatchForTransfer + Send + Sync + 'static, - B: bitcoin::BlockHeight + B: bitcoin::GetBlockHeight + bitcoin::TransactionBlockHeight + bitcoin::WatchForRawTransaction + Send @@ -626,7 +626,7 @@ impl State3 { pub async fn wait_for_cancel_timelock_to_expire(&self, bitcoin_wallet: &W) -> Result<()> where - W: WatchForRawTransaction + TransactionBlockHeight + BlockHeight, + W: WatchForRawTransaction + TransactionBlockHeight + GetBlockHeight, { wait_for_cancel_timelock_to_expire( bitcoin_wallet, @@ -663,7 +663,7 @@ impl State3 { pub async fn current_epoch(&self, bitcoin_wallet: &W) -> Result where - W: WatchForRawTransaction + TransactionBlockHeight + BlockHeight, + W: WatchForRawTransaction + TransactionBlockHeight + GetBlockHeight, { current_epoch( bitcoin_wallet, @@ -795,7 +795,7 @@ impl State4 { pub async fn wait_for_cancel_timelock_to_expire(&self, bitcoin_wallet: &W) -> Result<()> where - W: WatchForRawTransaction + TransactionBlockHeight + BlockHeight, + W: WatchForRawTransaction + TransactionBlockHeight + GetBlockHeight, { wait_for_cancel_timelock_to_expire( bitcoin_wallet, @@ -807,7 +807,7 @@ impl State4 { pub async fn expired_timelock(&self, bitcoin_wallet: &W) -> Result where - W: WatchForRawTransaction + TransactionBlockHeight + BlockHeight, + W: WatchForRawTransaction + TransactionBlockHeight + GetBlockHeight, { current_epoch( bitcoin_wallet,