diff --git a/bitcoin-rpc-provider/src/lib.rs b/bitcoin-rpc-provider/src/lib.rs index 7fa1c687..23a3cdcc 100644 --- a/bitcoin-rpc-provider/src/lib.rs +++ b/bitcoin-rpc-provider/src/lib.rs @@ -11,6 +11,7 @@ use bitcoin::hashes::serde; use bitcoin::psbt::Psbt; use bitcoin::secp256k1::rand::thread_rng; use bitcoin::secp256k1::SecretKey; +use bitcoin::Amount; use bitcoin::{consensus::Decodable, Network, PrivateKey, Transaction, Txid}; use bitcoin::{secp256k1::PublicKey, Address, OutPoint, ScriptBuf, TxOut}; use bitcoincore_rpc::jsonrpc::serde_json; @@ -276,7 +277,7 @@ impl Wallet for BitcoinCoreProvider { fn get_utxos_for_amount( &self, - amount: u64, + amount: Amount, _fee_rate: u64, lock_utxos: bool, ) -> Result, ManagerError> { @@ -312,7 +313,8 @@ impl Wallet for BitcoinCoreProvider { }) .collect::, Error>>()?; // TODO(tibo): properly compute the cost of change - let selection = select_coins(amount, 20, &mut utxo_pool).ok_or(Error::NotEnoughCoins)?; + let selection = + select_coins(amount.to_sat(), 20, &mut utxo_pool).ok_or(Error::NotEnoughCoins)?; if lock_utxos { let outputs: Vec<_> = selection.iter().map(|x| x.0.outpoint).collect(); diff --git a/dlc-manager/src/channel_updater.rs b/dlc-manager/src/channel_updater.rs index 27587138..cfc57d65 100644 --- a/dlc-manager/src/channel_updater.rs +++ b/dlc-manager/src/channel_updater.rs @@ -685,7 +685,7 @@ where let total_collateral = channel.counter_params.collateral + channel.own_params.collateral; //Todo(tibo): compute fee for settle transaction. - let fee_remainder = 0 as u64; //channel.fund_tx.output[channel.fund_output_index].value - total_collateral; + let fee_remainder = 0_u64; //channel.fund_tx.output[channel.fund_output_index].value - total_collateral; let final_offer_payout = total_collateral - own_payout + Amount::from_sat(fee_remainder / 2); let final_accept_payout = own_payout + Amount::from_sat(fee_remainder / 2); @@ -776,7 +776,7 @@ where let total_collateral = channel.counter_params.collateral + channel.own_params.collateral; //Todo(tibo): compute fee for settle transaction. - let fee_remainder = 0 as u64; //channel.fund_tx.output[channel.fund_output_index].value - total_collateral; + let fee_remainder = 0_u64; //channel.fund_tx.output[channel.fund_output_index].value - total_collateral; let final_offer_payout = total_collateral - counter_payout + Amount::from_sat(fee_remainder / 2); let final_accept_payout = counter_payout + Amount::from_sat(fee_remainder / 2); diff --git a/mocks/src/mock_wallet.rs b/mocks/src/mock_wallet.rs index 5bb062fc..8386ab42 100644 --- a/mocks/src/mock_wallet.rs +++ b/mocks/src/mock_wallet.rs @@ -14,12 +14,12 @@ pub struct MockWallet { } impl MockWallet { - pub fn new(blockchain: &Rc, utxo_values: &[u64]) -> Self { + pub fn new(blockchain: &Rc, utxo_values: &[Amount]) -> Self { let mut utxos = Vec::with_capacity(utxo_values.len()); for utxo_value in utxo_values { let tx_out = TxOut { - value: Amount::from_sat(*utxo_value), + value: *utxo_value, script_pubkey: ScriptBuf::default(), }; let tx = Transaction { @@ -78,7 +78,7 @@ impl Wallet for MockWallet { fn get_utxos_for_amount( &self, - amount: u64, + amount: Amount, _fee_rate: u64, _lock_utxos: bool, ) -> Result, Error> { @@ -88,7 +88,7 @@ impl Wallet for MockWallet { seed, seed, )); - let mut sum = 0; + let mut sum = Amount::ZERO; let res = utxo_pool .iter() @@ -96,7 +96,7 @@ impl Wallet for MockWallet { if sum >= amount { return false; } - sum += x.tx_out.value.to_sat(); + sum += x.tx_out.value; true }) .cloned() diff --git a/sample/src/cli.rs b/sample/src/cli.rs index c55b3795..1924cf89 100644 --- a/sample/src/cli.rs +++ b/sample/src/cli.rs @@ -4,6 +4,7 @@ use crate::DlcManager; use crate::DlcMessageHandler; use crate::PeerManager; use bitcoin::secp256k1::PublicKey; +use bitcoin::Amount; use dlc_manager::channel::signed_channel::SignedChannelState; use dlc_manager::channel::signed_channel::SignedChannelStateType; use dlc_manager::contract::contract_input::ContractInput; @@ -313,7 +314,7 @@ pub(crate) async fn poll_for_user_input( } s @ "offersettlechannel" => { let channel_id = read_id_or_continue!(words, s, "channel id"); - let counter_payout: u64 = match words.next().map(|w| w.parse().ok()) { + let counter_payout: Amount = match words.next().map(|w| w.parse().ok()) { Some(Some(p)) => p, _ => { println!("Missing or invalid counter payout parameter"); diff --git a/simple-wallet/src/lib.rs b/simple-wallet/src/lib.rs index a2ed414b..cf2ef025 100644 --- a/simple-wallet/src/lib.rs +++ b/simple-wallet/src/lib.rs @@ -96,12 +96,12 @@ where } /// Returns the sum of all UTXOs value. - pub fn get_balance(&self) -> u64 { + pub fn get_balance(&self) -> Amount { self.storage .get_utxos() .unwrap() .iter() - .map(|x| x.tx_out.value.to_sat()) + .map(|x| x.tx_out.value) .sum() } @@ -237,7 +237,7 @@ where fn get_utxos_for_amount( &self, - amount: u64, + amount: Amount, fee_rate: u64, lock_utxos: bool, ) -> Result> { @@ -270,7 +270,7 @@ where Vec::new(), utxos, fee_rate, - amount, + amount.to_sat(), &dummy_drain, &mut bitcoin::key::rand::thread_rng(), ) @@ -347,7 +347,7 @@ where &mut tx, input_index, bitcoin::sighash::EcdsaSighashType::All, - tx_out.value.to_sat(), + tx_out.value, )?; let tx_input = tx.input[input_index].clone();