mirror of
https://github.com/comit-network/xmr-btc-swap.git
synced 2024-10-01 01:45:40 -04:00
Use action to name trait
This commit is contained in:
parent
4e91ac467b
commit
81cbc24c46
@ -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<W>(
|
||||
bitcoin_wallet: Arc<W>,
|
||||
) -> Result<bitcoin::TxCancel>
|
||||
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<W>(
|
||||
bitcoin_wallet: Arc<W>,
|
||||
) -> Result<(bitcoin::TxRefund, Option<bitcoin::Transaction>)>
|
||||
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);
|
||||
|
@ -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
|
||||
|
@ -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<N, B>(
|
||||
) -> GenBoxed<Action, (), ()>
|
||||
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<W>(&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<W>(&self, bitcoin_wallet: &W) -> Result<ExpiredTimelocks>
|
||||
where
|
||||
W: WatchForRawTransaction + TransactionBlockHeight + BlockHeight,
|
||||
W: WatchForRawTransaction + TransactionBlockHeight + GetBlockHeight,
|
||||
{
|
||||
current_epoch(
|
||||
bitcoin_wallet,
|
||||
|
@ -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<B>(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<W>(
|
||||
lock_tx_id: ::bitcoin::Txid,
|
||||
) -> anyhow::Result<ExpiredTimelocks>
|
||||
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<W>(
|
||||
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;
|
||||
|
||||
|
@ -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<N, M, B>(
|
||||
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<W>(&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<W>(&self, bitcoin_wallet: &W) -> Result<ExpiredTimelocks>
|
||||
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<W>(&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<W>(&self, bitcoin_wallet: &W) -> Result<ExpiredTimelocks>
|
||||
where
|
||||
W: WatchForRawTransaction + TransactionBlockHeight + BlockHeight,
|
||||
W: WatchForRawTransaction + TransactionBlockHeight + GetBlockHeight,
|
||||
{
|
||||
current_epoch(
|
||||
bitcoin_wallet,
|
||||
|
Loading…
Reference in New Issue
Block a user