Introduce a subaddress capable scanner type

This commit is contained in:
Luke Parker
2022-08-22 08:32:09 -04:00
parent 19f5fd8fe9
commit 5751204a98
5 changed files with 152 additions and 67 deletions

View File

@@ -23,11 +23,7 @@ use frost::{
use monero_serai::{
random_scalar,
wallet::{
ViewPair,
address::{Network, AddressType},
SignableTransaction,
},
wallet::{ViewPair, Scanner, address::Network, SignableTransaction},
};
mod rpc;
@@ -78,8 +74,9 @@ async fn send_core(test: usize, multisig: bool) {
}
}
let view_pair = ViewPair { view, spend: spend_pub };
let addr = view_pair.address(Network::Mainnet, AddressType::Standard);
let view_pair = ViewPair::new(spend_pub, view);
let scanner = Scanner::from_view(view_pair, Network::Mainnet, false);
let addr = scanner.address();
let fee = rpc.get_fee().await.unwrap();
@@ -101,7 +98,7 @@ async fn send_core(test: usize, multisig: bool) {
// Grab the largest output available
let output = {
let mut outputs = tx.as_ref().unwrap().scan(&view_pair, false).ignore_timelock();
let mut outputs = scanner.scan(tx.as_ref().unwrap()).ignore_timelock();
outputs.sort_by(|x, y| x.commitment.amount.cmp(&y.commitment.amount).reverse());
outputs.swap_remove(0)
};
@@ -126,7 +123,7 @@ async fn send_core(test: usize, multisig: bool) {
for i in (start + 1) .. (start + 9) {
let tx = rpc.get_block_transactions(i).await.unwrap().swap_remove(0);
let output = tx.scan(&view_pair, false).ignore_timelock().swap_remove(0);
let output = scanner.scan(&tx).ignore_timelock().swap_remove(0);
amount += output.commitment.amount;
outputs.push(output);
}