use stellar_axelar_std::interfaces::{OwnableInterface, UpgradableInterface};
use stellar_axelar_std::{contractclient, soroban_sdk, Address, Env, Symbol, Val, Vec};
use crate::error::ContractError;
#[contractclient(name = "TokenManagerClient")]
pub trait TokenManagerInterface: OwnableInterface + UpgradableInterface {
fn execute(
env: &Env,
contract: Address,
func: Symbol,
args: Vec<Val>,
) -> Result<Val, ContractError>;
}