use std::future::Future;
use tari_ootle_transaction::{Transaction, UnsignedTransaction};
use crate::{
Address,
stealth::{BurnClaimKeyProvider, 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 + BurnClaimKeyProvider
{
}
impl<T> WalletKeyProvider for T where T: TransactionSigner
+ TransactionStealthKeySigner
+ StealthOutputStatementFactory
+ InputDecryptor
+ BurnClaimKeyProvider
{
}