stellar_token_manager/
contract.rs1use stellar_axelar_std::{
2 contract, contractimpl, interfaces, only_owner, soroban_sdk, Address, Env, Ownable, Symbol,
3 Upgradable, Val, Vec,
4};
5
6use crate::error::ContractError;
7use crate::interface::TokenManagerInterface;
8
9#[contract]
10#[derive(Ownable, Upgradable)]
11pub struct TokenManager;
12
13#[contractimpl]
14impl TokenManager {
15 pub fn __constructor(env: &Env, owner: Address) {
16 interfaces::set_owner(env, &owner);
17 }
18}
19
20#[contractimpl]
21impl TokenManagerInterface for TokenManager {
22 #[only_owner]
23 fn execute(
24 env: &Env,
25 contract: Address,
26 func: Symbol,
27 args: Vec<Val>,
28 ) -> Result<Val, ContractError> {
29 let res: Val = env.invoke_contract(&contract, &func, args);
30
31 Ok(res)
32 }
33}