update address public API design

This commit is contained in:
akildemir
2023-01-04 16:26:25 +03:00
parent d9fa88fa76
commit 3a319b229f
6 changed files with 97 additions and 101 deletions

View File

@@ -14,7 +14,7 @@ use monero_serai::{
Protocol, random_scalar,
wallet::{
ViewPair, Scanner,
address::{Network, AddressType, AddressMeta, MoneroAddress},
address::{Network, AddressType, AddressMeta, MoneroAddress, AddressSpec},
SpendableOutput,
},
rpc::Rpc,
@@ -64,7 +64,7 @@ pub async fn get_miner_tx_output(rpc: &Rpc, view: &ViewPair) -> SpendableOutput
// mine 60 blocks to unlock a miner tx
let start = rpc.get_height().await.unwrap();
rpc.generate_blocks(&scanner.address().to_string(), 60).await.unwrap();
rpc.generate_blocks(&scanner.address(AddressSpec::Standard).to_string(), 60).await.unwrap();
let block = rpc.get_block(start).await.unwrap();
scanner.scan(rpc, &block).await.unwrap().swap_remove(0).ignore_timelock().swap_remove(0)
@@ -151,7 +151,7 @@ macro_rules! test {
use monero_serai::{
random_scalar,
wallet::{
address::{Network, AddressMeta, AddressType}, ViewPair, Scanner, SignableTransaction,
address::{Network, AddressSpec}, ViewPair, Scanner, SignableTransaction,
SignableTransactionBuilder,
},
};
@@ -185,7 +185,7 @@ macro_rules! test {
let rpc = rpc().await;
let view = ViewPair::new(spend_pub, Zeroizing::new(random_scalar(&mut OsRng)));
let addr = view.address(AddressMeta::new(Network::Mainnet, AddressType::Standard));
let addr = view.address(Network::Mainnet, AddressSpec::Standard);
let miner_tx = get_miner_tx_output(&rpc, &view).await;

View File

@@ -1,6 +1,6 @@
use rand::RngCore;
use monero_serai::{transaction::Transaction};
use monero_serai::transaction::Transaction;
mod runner;
@@ -8,9 +8,9 @@ test!(
scan_standard_address,
(
|_, mut builder: Builder, _| async move {
let scanner =
let mut scanner =
Scanner::from_view(runner::random_address().1, Network::Mainnet, Some(HashSet::new()));
builder.add_payment(scanner.address(), 5);
builder.add_payment(scanner.address(AddressSpec::Standard), 5);
(builder.build().unwrap(), (scanner,))
},
|_, tx: Transaction, _, mut state: (Scanner,)| async move {
@@ -27,7 +27,10 @@ test!(
let mut scanner =
Scanner::from_view(runner::random_address().1, Network::Mainnet, Some(HashSet::new()));
let subaddress_index = (0, 1);
builder.add_payment(scanner.subaddress(subaddress_index), 5);
builder.add_payment(
scanner.address(AddressSpec::Subaddress(subaddress_index.0, subaddress_index.1)),
5,
);
(builder.build().unwrap(), (scanner, subaddress_index))
},
|_, tx: Transaction, _, mut state: (Scanner, (u32, u32))| async move {
@@ -42,12 +45,12 @@ test!(
scan_integrated_address,
(
|_, mut builder: Builder, _| async move {
let scanner =
let mut scanner =
Scanner::from_view(runner::random_address().1, Network::Mainnet, Some(HashSet::new()));
let mut payment_id = [0u8; 8];
OsRng.fill_bytes(&mut payment_id);
builder.add_payment(scanner.integrated_address(payment_id), 5);
builder.add_payment(scanner.address(AddressSpec::Integrated(payment_id)), 5);
(builder.build().unwrap(), (scanner, payment_id))
},
|_, tx: Transaction, _, mut state: (Scanner, [u8; 8])| async move {
@@ -64,7 +67,7 @@ test!(
|_, mut builder: Builder, _| async move {
let mut scanner =
Scanner::from_view(runner::random_address().1, Network::Mainnet, Some(HashSet::new()));
builder.add_payment(scanner.featured_address(None, None, false), 5);
builder.add_payment(scanner.address(AddressSpec::Featured(None, None, false)), 5);
(builder.build().unwrap(), (scanner,))
},
|_, tx: Transaction, _, mut state: (Scanner,)| async move {
@@ -81,7 +84,10 @@ test!(
let mut scanner =
Scanner::from_view(runner::random_address().1, Network::Mainnet, Some(HashSet::new()));
let subaddress_index = (0, 2);
builder.add_payment(scanner.featured_address(Some(subaddress_index), None, false), 5);
builder.add_payment(
scanner.address(AddressSpec::Featured(Some(subaddress_index), None, false)),
5,
);
(builder.build().unwrap(), (scanner, subaddress_index))
},
|_, tx: Transaction, _, mut state: (Scanner, (u32, u32))| async move {
@@ -101,7 +107,7 @@ test!(
let mut payment_id = [0u8; 8];
OsRng.fill_bytes(&mut payment_id);
builder.add_payment(scanner.featured_address(None, Some(payment_id), false), 5);
builder.add_payment(scanner.address(AddressSpec::Featured(None, Some(payment_id), false)), 5);
(builder.build().unwrap(), (scanner, payment_id))
},
|_, tx: Transaction, _, mut state: (Scanner, [u8; 8])| async move {
@@ -123,8 +129,10 @@ test!(
let mut payment_id = [0u8; 8];
OsRng.fill_bytes(&mut payment_id);
builder
.add_payment(scanner.featured_address(Some(subaddress_index), Some(payment_id), false), 5);
builder.add_payment(
scanner.address(AddressSpec::Featured(Some(subaddress_index), Some(payment_id), false)),
5,
);
(builder.build().unwrap(), (scanner, payment_id, subaddress_index))
},
|_, tx: Transaction, _, mut state: (Scanner, [u8; 8], (u32, u32))| async move {
@@ -140,9 +148,9 @@ test!(
scan_guaranteed_standard,
(
|_, mut builder: Builder, _| async move {
let scanner = Scanner::from_view(runner::random_address().1, Network::Mainnet, None);
let mut scanner = Scanner::from_view(runner::random_address().1, Network::Mainnet, None);
builder.add_payment(scanner.address(), 5);
builder.add_payment(scanner.address(AddressSpec::Featured(None, None, true)), 5);
(builder.build().unwrap(), (scanner,))
},
|_, tx: Transaction, _, mut state: (Scanner,)| async move {
@@ -159,7 +167,8 @@ test!(
let mut scanner = Scanner::from_view(runner::random_address().1, Network::Mainnet, None);
let subaddress_index = (0, 1);
builder.add_payment(scanner.subaddress(subaddress_index), 5);
builder
.add_payment(scanner.address(AddressSpec::Featured(Some(subaddress_index), None, true)), 5);
(builder.build().unwrap(), (scanner, subaddress_index))
},
|_, tx: Transaction, _, mut state: (Scanner, (u32, u32))| async move {
@@ -174,11 +183,11 @@ test!(
scan_guaranteed_integrated,
(
|_, mut builder: Builder, _| async move {
let scanner = Scanner::from_view(runner::random_address().1, Network::Mainnet, None);
let mut scanner = Scanner::from_view(runner::random_address().1, Network::Mainnet, None);
let mut payment_id = [0u8; 8];
OsRng.fill_bytes(&mut payment_id);
builder.add_payment(scanner.integrated_address(payment_id), 5);
builder.add_payment(scanner.address(AddressSpec::Featured(None, Some(payment_id), true)), 5);
(builder.build().unwrap(), (scanner, payment_id))
},
|_, tx: Transaction, _, mut state: (Scanner, [u8; 8])| async move {
@@ -199,8 +208,10 @@ test!(
let mut payment_id = [0u8; 8];
OsRng.fill_bytes(&mut payment_id);
builder
.add_payment(scanner.featured_address(Some(subaddress_index), Some(payment_id), true), 5);
builder.add_payment(
scanner.address(AddressSpec::Featured(Some(subaddress_index), Some(payment_id), true)),
5,
);
(builder.build().unwrap(), (scanner, payment_id, subaddress_index))
},
|_, tx: Transaction, _, mut state: (Scanner, [u8; 8], (u32, u32))| async move {