1use defuse_admin_utils::full_access_keys::FullAccessKeys;
2use near_plugins::{AccessControllable, access_control_any};
3use near_sdk::{Promise, PublicKey, assert_one_yocto, env, near};
4
5use super::{Contract, ContractExt, Role};
6
7#[near]
8impl FullAccessKeys for Contract {
9 #[access_control_any(roles(Role::DAO))]
10 #[payable]
11 fn add_full_access_key(&mut self, public_key: PublicKey) -> Promise {
12 assert_one_yocto();
13 Promise::new(env::current_account_id()).add_full_access_key(public_key)
14 }
15
16 #[access_control_any(roles(Role::DAO))]
17 #[payable]
18 fn delete_key(&mut self, public_key: PublicKey) -> Promise {
19 assert_one_yocto();
20 Promise::new(env::current_account_id()).delete_key(public_key)
21 }
22}