Skip to content

Commit

Permalink
fix:Include private checking method first on admin method
Browse files Browse the repository at this point in the history
It turns out every private function changed into admin has  failing point where it conflicts with admin checking method.
  • Loading branch information
hskang9 committed Feb 7, 2023
1 parent 8d66ae6 commit ad771a7
Showing 1 changed file with 23 additions and 4 deletions.
27 changes: 23 additions & 4 deletions engine/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -351,7 +351,11 @@ mod contract {
#[no_mangle]
pub extern "C" fn factory_update_address_version() {
let mut io = Runtime;
io.assert_private_call().sdk_unwrap();
let is_private = io.assert_private_call();
if is_private.is_err() {
let state = state::get_state(&io).sdk_unwrap();
require_owner_only(&state, &io.predecessor_account_id());
}
let check_deploy: Result<(), &[u8]> = match io.promise_result(0) {
Some(PromiseResult::Successful(_)) => Ok(()),
Some(_) => Err(b"ERR_ROUTER_DEPLOY_FAILED"),
Expand Down Expand Up @@ -558,7 +562,12 @@ mod contract {
pub extern "C" fn new_eth_connector() {
let io = Runtime;
// Only the owner can initialize the EthConnector
io.assert_private_call().sdk_unwrap();

let is_private = io.assert_private_call();
if is_private.is_err() {
let state = state::get_state(&io).sdk_unwrap();
require_owner_only(&state, &io.predecessor_account_id());
}

let args: InitCallArgs = io.read_input_borsh().sdk_unwrap();
let owner_id = io.current_account_id();
Expand All @@ -570,7 +579,12 @@ mod contract {
pub extern "C" fn set_eth_connector_contract_data() {
let mut io = Runtime;
// Only the owner can set the EthConnector contract data
io.assert_private_call().sdk_unwrap();

let is_private = io.assert_private_call();
if is_private.is_err() {
let state = state::get_state(&io).sdk_unwrap();
require_owner_only(&state, &io.predecessor_account_id());
}

let args: SetContractDataCallArgs = io.read_input_borsh().sdk_unwrap();
connector::set_contract_data(&mut io, args).sdk_unwrap();
Expand Down Expand Up @@ -846,7 +860,12 @@ mod contract {
#[no_mangle]
pub extern "C" fn set_paused_flags() {
let io = Runtime;
io.assert_private_call().sdk_unwrap();

let is_private = io.assert_private_call();
if is_private.is_err() {
let state = state::get_state(&io).sdk_unwrap();
require_owner_only(&state, &io.predecessor_account_id());
}

let args: PauseEthConnectorCallArgs = io.read_input_borsh().sdk_unwrap();
EthConnectorContract::init_instance(io)
Expand Down

0 comments on commit ad771a7

Please sign in to comment.