Skip to content

Commit

Permalink
Feat: change private methods to admin methods (#676)
Browse files Browse the repository at this point in the history
* fix:Include private checking method first on admin method

It turns out every private function changed into admin has  failing point where it conflicts with admin checking method.

* add comments for admin method checker

* fix: set factory_update_address_version as private

* remove unused comment
  • Loading branch information
hskang9 authored and birchmd committed Apr 5, 2023
1 parent f3ea006 commit d3ccb84
Showing 1 changed file with 16 additions and 3 deletions.
19 changes: 16 additions & 3 deletions engine/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -377,6 +377,7 @@ mod contract {
#[no_mangle]
pub extern "C" fn factory_update_address_version() {
let mut io = Runtime;
// The function is only set to be private, otherwise callback error will happen.
io.assert_private_call().sdk_unwrap();
let check_deploy: Result<(), &[u8]> = match io.promise_result_check() {
Some(true) => Ok(()),
Expand Down Expand Up @@ -583,7 +584,11 @@ 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 @@ -595,7 +600,11 @@ 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 @@ -872,7 +881,11 @@ 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)
.sdk_unwrap()
Expand Down

0 comments on commit d3ccb84

Please sign in to comment.