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)]
11#[migratable]
12pub struct TokenManager;
13
14#[contractimpl]
15impl TokenManager {
16 pub fn __constructor(env: &Env, owner: Address) {
17 interfaces::set_owner(env, &owner);
18 }
19}
20
21#[contractimpl]
22impl TokenManagerInterface for TokenManager {
23 #[only_owner]
24 fn execute(
25 env: &Env,
26 contract: Address,
27 func: Symbol,
28 args: Vec<Val>,
29 ) -> Result<Val, ContractError> {
30 let res: Val = env.invoke_contract(&contract, &func, args);
31
32 Ok(res)
33 }
34}