use casper_types::{
account::AccountHash, system::handle_payment::Error, TransferredTo, URef, U512,
};
pub trait MintProvider {
fn transfer_purse_to_account(
&mut self,
source: URef,
target: AccountHash,
amount: U512,
) -> Result<TransferredTo, Error>;
fn transfer_purse_to_purse(
&mut self,
source: URef,
target: URef,
amount: U512,
) -> Result<(), Error>;
fn available_balance(&mut self, purse: URef) -> Result<Option<U512>, Error>;
fn reduce_total_supply(&mut self, amount: U512) -> Result<(), Error>;
}