use std::future::Future;
use tari_ootle_transaction::{Transaction, UnsignedTransaction};
use crate::{
Address,
stealth::{InputDecryptor, StealthOutputStatementFactory},
transaction::{TransactionSigner, TransactionStealthKeySigner},
wallet::WalletResult,
};
pub trait NetworkWallet {
fn default_address(&self) -> &Address;
fn sign_transaction(&self, unsigned: UnsignedTransaction)
-> impl Future<Output = WalletResult<Transaction>> + Send;
}
pub trait WalletKeyProvider:
TransactionSigner + TransactionStealthKeySigner + StealthOutputStatementFactory + InputDecryptor
{
}
impl<T> WalletKeyProvider for T where T: TransactionSigner + TransactionStealthKeySigner + StealthOutputStatementFactory + InputDecryptor
{}