Current behavior:Error: Could not reach the end of the program. RunResources has no remaining steps. when running with_simulated_oracle_prices_before function in oracle_modules.cairo
Expected behavior: Loop through all params.primary_tokens.len()
Steps to reproduce: Calling simulate_execute_order inside order handler contract.
Related code:
fn with_simulated_oracle_prices_before(oracle: IOracleDispatcher, params: SimulatePricesParams) {
if (params.primary_tokens.len() != params.primary_prices.len()) {
OracleError::INVALID_PRIMARY_PRICES_FOR_SIMULATION(
params.primary_tokens.len(), params.primary_prices.len()
);
}
let cur_idx = 0;
loop {
if (cur_idx == params.primary_tokens.len()) {
break ();
}
let token: ContractAddress = *params.primary_tokens.at(cur_idx);
let price: Price = *params.primary_prices.at(cur_idx);
oracle.set_primary_price(token, price);
};
}
Expected code:
fn with_simulated_oracle_prices_before(oracle: IOracleDispatcher, params: SimulatePricesParams) {
if (params.primary_tokens.len() != params.primary_prices.len()) {
OracleError::INVALID_PRIMARY_PRICES_FOR_SIMULATION(
params.primary_tokens.len(), params.primary_prices.len()
);
}
let mut cur_idx = 0;
loop {
if (cur_idx == params.primary_tokens.len()) {
break ();
}
let token: ContractAddress = *params.primary_tokens.at(cur_idx);
let price: Price = *params.primary_prices.at(cur_idx);
oracle.set_primary_price(token, price);
cur_idx = cur_idx + 1;
};
}
Bug Report
Satoru version: https://github.com/keep-starknet-strange/satoru/commit/e665cfeca0b29879417dded83127ea583dd2af5c
Current behavior:
Error: Could not reach the end of the program. RunResources has no remaining steps.
when runningwith_simulated_oracle_prices_before
function inoracle_modules.cairo
Expected behavior: Loop through all
params.primary_tokens.len()
Steps to reproduce: Calling
simulate_execute_order
inside order handler contract.Related code:
Expected code:
Other information: Happy to make PR of the fix!