Bitcoin network check when building PSBT

This ensures that funds are not sent to an address on the wrong network.
This commit is contained in:
Daniel Karzel 2021-05-25 11:36:24 +10:00
parent c164f3d1f5
commit 202f6d1fa0
No known key found for this signature in database
GPG Key ID: 30C3FC2E438ADB6E
2 changed files with 6 additions and 0 deletions

View File

@ -12,6 +12,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- An issue where long-running connections are dead without a connection closure being reported back to the swarm. - An issue where long-running connections are dead without a connection closure being reported back to the swarm.
Adding a periodic ping ensures that the connection is kept alive, and a broken connection is reported back resulting in a close event on the swarm. Adding a periodic ping ensures that the connection is kept alive, and a broken connection is reported back resulting in a close event on the swarm.
This fixes the error of the ASB being unable to send a transfer proof to the CLI. This fixes the error of the ASB being unable to send a transfer proof to the CLI.
- An issue where ASB Bitcoin withdrawal can be done to an address on the wrong network.
A network check was added that compares the wallet's network against the network of the given address when building the transaction.
## [0.6.0] - 2021-05-24 ## [0.6.0] - 2021-05-24

View File

@ -303,6 +303,10 @@ where
address: Address, address: Address,
amount: Amount, amount: Amount,
) -> Result<PartiallySignedTransaction> { ) -> Result<PartiallySignedTransaction> {
if self.network != address.network {
bail!("Cannot build PSBT because network of given address is {} but wallet is on network {}", address.network, self.network);
}
let wallet = self.wallet.lock().await; let wallet = self.wallet.lock().await;
let client = self.client.lock().await; let client = self.client.lock().await;
let fee_rate = client.estimate_feerate(self.target_block)?; let fee_rate = client.estimate_feerate(self.target_block)?;