Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: global_reentrancy_guard duplicate exchange_router and Handler #625

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 1 addition & 8 deletions src/exchange/deposit_handler.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,6 @@ mod DepositHandler {
IRoleModule::only_controller(@state);

let data_store = self.data_store.read();
global_reentrancy_guard::non_reentrant_before(data_store);

feature_utils::validate_feature(
self.data_store.read(),
Expand All @@ -171,8 +170,6 @@ mod DepositHandler {
params
);

global_reentrancy_guard::non_reentrant_after(data_store);

key
}

Expand All @@ -181,7 +178,6 @@ mod DepositHandler {
IRoleModule::only_controller(@state);

let data_store = self.data_store.read();
global_reentrancy_guard::non_reentrant_before(data_store);

// let starting_gas = gas_left();

Expand All @@ -204,8 +200,6 @@ mod DepositHandler {
keys::user_initiated_cancel(),
array!['Cancel Deposit'] //TODO should be empty string
);

global_reentrancy_guard::non_reentrant_after(data_store);
}

fn execute_deposit(ref self: ContractState, key: felt252, oracle_params: SetPricesParams) {
Expand Down Expand Up @@ -237,15 +231,14 @@ mod DepositHandler {

let data_store = self.data_store.read();
let oracle = self.oracle.read();
global_reentrancy_guard::non_reentrant_before(data_store);

oracle_modules::with_simulated_oracle_prices_before(oracle, params);

let oracleParams = Default::default();

self.execute_deposit_keeper(key, oracleParams, get_caller_address());

oracle_modules::with_simulated_oracle_prices_after();
global_reentrancy_guard::non_reentrant_after(data_store);
}

fn execute_deposit_keeper(
Expand Down
18 changes: 2 additions & 16 deletions src/exchange/order_handler.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -202,8 +202,6 @@ mod OrderHandler {
let base_order_handler_state = BaseOrderHandler::unsafe_new_contract_state();
let data_store = base_order_handler_state.data_store.read();

global_reentrancy_guard::non_reentrant_before(data_store);

// Validate feature and create order.
feature_utils::validate_feature(
data_store,
Expand All @@ -218,8 +216,6 @@ mod OrderHandler {
params
);

global_reentrancy_guard::non_reentrant_after(data_store);

key
}

Expand All @@ -241,8 +237,6 @@ mod OrderHandler {
let data_store = base_order_handler_state.data_store.read();
let event_emitter = base_order_handler_state.event_emitter.read();

global_reentrancy_guard::non_reentrant_before(data_store);

// Validate feature.
feature_utils::validate_feature(
data_store,
Expand Down Expand Up @@ -281,8 +275,6 @@ mod OrderHandler {
key, size_delta_usd, acceptable_price, trigger_price, min_output_amount
);

global_reentrancy_guard::non_reentrant_after(data_store);

updated_order
}

Expand All @@ -297,8 +289,6 @@ mod OrderHandler {
let base_order_handler_state = BaseOrderHandler::unsafe_new_contract_state();
let data_store = base_order_handler_state.data_store.read();

global_reentrancy_guard::non_reentrant_before(data_store);

let order = data_store.get_order(key);

// Validate feature.
Expand All @@ -323,8 +313,6 @@ mod OrderHandler {
keys::user_initiated_cancel(),
ArrayTrait::<felt252>::new(),
);

global_reentrancy_guard::non_reentrant_after(data_store);
}

fn execute_order(ref self: ContractState, key: felt252, oracle_params: SetPricesParams) {
Expand Down Expand Up @@ -361,15 +349,14 @@ mod OrderHandler {
fn simulate_execute_order(
ref self: ContractState, key: felt252, params: SimulatePricesParams
) {
// Check only order keeper.
// Check only controller.
let role_module_state = RoleModule::unsafe_new_contract_state();
role_module_state.only_order_keeper();
role_module_state.only_controller();

// Fetch data store.
let base_order_handler_state = BaseOrderHandler::unsafe_new_contract_state();
let data_store = base_order_handler_state.data_store.read();

global_reentrancy_guard::non_reentrant_before(data_store);
oracle_modules::with_simulated_oracle_prices_before(
base_order_handler_state.oracle.read(), params
);
Expand All @@ -378,7 +365,6 @@ mod OrderHandler {
self._execute_order(key, oracle_params, get_contract_address());

oracle_modules::with_simulated_oracle_prices_after();
global_reentrancy_guard::non_reentrant_after(data_store);
}
}

Expand Down
12 changes: 0 additions & 12 deletions src/exchange/withdrawal_handler.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -148,8 +148,6 @@ mod WithdrawalHandler {

let data_store = self.data_store.read();

global_reentrancy_guard::non_reentrant_before(data_store); // Initiates re-entrancy

feature_utils::validate_feature(
data_store, keys::create_withdrawal_feature_disabled_key(get_contract_address())
);
Expand All @@ -158,8 +156,6 @@ mod WithdrawalHandler {
data_store, self.event_emitter.read(), self.withdrawal_vault.read(), account, params
);

global_reentrancy_guard::non_reentrant_after(data_store); // Finalizes re-entrancy

result
}

Expand All @@ -172,8 +168,6 @@ mod WithdrawalHandler {

let data_store = self.data_store.read();

global_reentrancy_guard::non_reentrant_before(data_store); // Initiates re-entrancy

let starting_gas = starknet_utils::sn_gasleft(array![200]); // Returns 200 for now,
let withdrawal = data_store.get_withdrawal(key);

Expand All @@ -195,8 +189,6 @@ mod WithdrawalHandler {
keys::user_initiated_cancel(),
array![]
);

global_reentrancy_guard::non_reentrant_after(data_store); // Finalizes re-entrancy
}

fn execute_withdrawal(
Expand Down Expand Up @@ -260,8 +252,6 @@ mod WithdrawalHandler {

let data_store = self.data_store.read();

global_reentrancy_guard::non_reentrant_before(data_store); // Initiates re-entrancy

let oracle_params: SetPricesParams = SetPricesParams {
signer_info: 0,
tokens: Default::default(),
Expand All @@ -279,8 +269,6 @@ mod WithdrawalHandler {

self.execute_withdrawal_keeper(key, oracle_params, get_caller_address());

global_reentrancy_guard::non_reentrant_after(data_store); // Finalizes re-entrancy

oracle_modules::with_simulated_oracle_prices_after();
}
}
Expand Down
Loading