diff --git a/CHANGELOG.md b/CHANGELOG.md index b74b04d6b1..e6be5e439a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 #### Changed - Updated the error message returned when calling a nonexistent method on a contract to better align with the format used by the network +- Oracle support in `snforge` is now stable and no longer requires the `--experimental-oracles` CLI flag ### Cast diff --git a/crates/cheatnet/src/runtime_extensions/forge_runtime_extension/mod.rs b/crates/cheatnet/src/runtime_extensions/forge_runtime_extension/mod.rs index 48687cf335..2cafde01ef 100644 --- a/crates/cheatnet/src/runtime_extensions/forge_runtime_extension/mod.rs +++ b/crates/cheatnet/src/runtime_extensions/forge_runtime_extension/mod.rs @@ -60,8 +60,6 @@ pub struct ForgeExtension<'a> { pub environment_variables: &'a HashMap, pub contracts_data: &'a ContractsData, pub fuzzer_rng: Option>>, - /// Whether `--experimental-oracles` flag has been enabled. - pub experimental_oracles_enabled: bool, pub oracle_hint_service: OracleHintService, } @@ -80,14 +78,6 @@ impl<'a> ExtensionLogic for ForgeExtension<'a> { .oracle_hint_service .accept_cheatcode(selector.as_bytes()) { - if !self.experimental_oracles_enabled { - return Err(anyhow!( - "Oracles are an experimental feature. \ - To enable them, pass `--experimental-oracles` CLI flag." - ) - .into()); - } - let output = self .oracle_hint_service .execute_cheatcode(oracle_selector, input_reader.into_remaining()); diff --git a/crates/forge-runner/src/forge_config.rs b/crates/forge-runner/src/forge_config.rs index 50fea06d52..bc9c4b1987 100644 --- a/crates/forge-runner/src/forge_config.rs +++ b/crates/forge-runner/src/forge_config.rs @@ -26,7 +26,6 @@ pub struct TestRunnerConfig { pub contracts_data: ContractsData, pub environment_variables: HashMap, pub tracked_resource: ForgeTrackedResource, - pub experimental_oracles: bool, } #[derive(Debug, PartialEq)] @@ -90,7 +89,6 @@ pub struct RuntimeConfig<'a> { pub contracts_data: &'a ContractsData, pub environment_variables: &'a HashMap, pub tracked_resource: &'a ForgeTrackedResource, - pub experimental_oracles: bool, } impl<'a> RuntimeConfig<'a> { @@ -103,7 +101,6 @@ impl<'a> RuntimeConfig<'a> { contracts_data: &value.contracts_data, environment_variables: &value.environment_variables, tracked_resource: &value.tracked_resource, - experimental_oracles: value.experimental_oracles, } } } diff --git a/crates/forge-runner/src/running.rs b/crates/forge-runner/src/running.rs index 96dbe2de9f..10a371d7f2 100644 --- a/crates/forge-runner/src/running.rs +++ b/crates/forge-runner/src/running.rs @@ -231,7 +231,6 @@ pub fn run_test_case( environment_variables: runtime_config.environment_variables, contracts_data: runtime_config.contracts_data, fuzzer_rng, - experimental_oracles_enabled: runtime_config.experimental_oracles, oracle_hint_service: OracleHintService::new(Some(versioned_program_path.as_std_path())), }; diff --git a/crates/forge/src/combine_configs.rs b/crates/forge/src/combine_configs.rs index 9fcfb05d22..8963083297 100644 --- a/crates/forge/src/combine_configs.rs +++ b/crates/forge/src/combine_configs.rs @@ -28,7 +28,6 @@ pub fn combine_configs( forge_config_from_scarb: &ForgeConfigFromScarb, additional_args: &[OsString], trace_args: TraceArgs, - experimental_oracles: bool, ) -> ForgeConfig { let execution_data_to_save = ExecutionDataToSave::from_flags( save_trace_data || forge_config_from_scarb.save_trace_data, @@ -52,7 +51,6 @@ pub fn combine_configs( contracts_data, tracked_resource, environment_variables: env::vars().collect(), - experimental_oracles, }), output_config: Arc::new(OutputConfig { trace_args, @@ -83,7 +81,6 @@ mod tests { &ForgeConfigFromScarb::default(), &[], TraceArgs::default(), - false, ); let config2 = combine_configs( false, @@ -100,7 +97,6 @@ mod tests { &ForgeConfigFromScarb::default(), &[], TraceArgs::default(), - false, ); assert_ne!(config.test_runner_config.fuzzer_seed, 0); @@ -128,7 +124,6 @@ mod tests { &ForgeConfigFromScarb::default(), &[], TraceArgs::default(), - false, ); assert_eq!( config, @@ -143,7 +138,6 @@ mod tests { cache_dir: Utf8PathBuf::default(), contracts_data: ContractsData::default(), environment_variables: config.test_runner_config.environment_variables.clone(), - experimental_oracles: false, }), output_config: Arc::new(OutputConfig { detailed_resources: false, @@ -184,7 +178,6 @@ mod tests { &config_from_scarb, &[], TraceArgs::default(), - false, ); assert_eq!( config, @@ -199,7 +192,6 @@ mod tests { cache_dir: Utf8PathBuf::default(), contracts_data: ContractsData::default(), environment_variables: config.test_runner_config.environment_variables.clone(), - experimental_oracles: false, }), output_config: Arc::new(OutputConfig { detailed_resources: true, @@ -244,7 +236,6 @@ mod tests { &config_from_scarb, &[], TraceArgs::default(), - false, ); assert_eq!( @@ -260,7 +251,6 @@ mod tests { cache_dir: Utf8PathBuf::default(), contracts_data: ContractsData::default(), environment_variables: config.test_runner_config.environment_variables.clone(), - experimental_oracles: false, }), output_config: Arc::new(OutputConfig { detailed_resources: true, diff --git a/crates/forge/src/lib.rs b/crates/forge/src/lib.rs index 477f94a565..1a8ffffaca 100644 --- a/crates/forge/src/lib.rs +++ b/crates/forge/src/lib.rs @@ -207,10 +207,6 @@ pub struct TestArgs { #[arg(last = true)] additional_args: Vec, - /// Enable experimental oracles support. - #[arg(long, default_value_t = false, env = "SNFORGE_EXPERIMENTAL_ORACLES")] - experimental_oracles: bool, - #[command(flatten)] scarb_args: ScarbArgs, } diff --git a/crates/forge/src/run_tests/package.rs b/crates/forge/src/run_tests/package.rs index c41248491f..e6a25d1651 100644 --- a/crates/forge/src/run_tests/package.rs +++ b/crates/forge/src/run_tests/package.rs @@ -108,7 +108,6 @@ impl RunForPackageArgs { &forge_config_from_scarb, &args.additional_args, args.trace_args.clone(), - args.experimental_oracles, )); let test_filter = TestsFilter::from_flags( diff --git a/crates/forge/test_utils/src/running_tests.rs b/crates/forge/test_utils/src/running_tests.rs index c1609ab26c..43ba00dfbb 100644 --- a/crates/forge/test_utils/src/running_tests.rs +++ b/crates/forge/test_utils/src/running_tests.rs @@ -78,7 +78,6 @@ pub fn run_test_case( contracts_data: ContractsData::try_from(test.contracts(&ui).unwrap()).unwrap(), tracked_resource, environment_variables: test.env().clone(), - experimental_oracles: false, }), output_config: Arc::new(OutputConfig { detailed_resources: false, diff --git a/crates/forge/tests/integration/setup_fork.rs b/crates/forge/tests/integration/setup_fork.rs index eb7e9175e3..6e3c95c742 100644 --- a/crates/forge/tests/integration/setup_fork.rs +++ b/crates/forge/tests/integration/setup_fork.rs @@ -160,7 +160,6 @@ fn fork_aliased_decorator() { .unwrap(), tracked_resource: ForgeTrackedResource::CairoSteps, environment_variables: test.env().clone(), - experimental_oracles: false, }), output_config: Arc::new(OutputConfig { detailed_resources: false, @@ -253,7 +252,6 @@ fn fork_aliased_decorator_overrding() { .unwrap(), tracked_resource: ForgeTrackedResource::CairoSteps, environment_variables: test.env().clone(), - experimental_oracles: false, }), output_config: Arc::new(OutputConfig { detailed_resources: false, diff --git a/docs/src/appendix/snforge/test.md b/docs/src/appendix/snforge/test.md index ca0709615b..1e58980495 100644 --- a/docs/src/appendix/snforge/test.md +++ b/docs/src/appendix/snforge/test.md @@ -131,10 +131,6 @@ Use Scarb release profile. ## `--dev` Use Scarb dev profile. -## `--experimental-oracles` - -Enable experimental [oracles](../../snforge-advanced-features/oracles.md) support. - ## `-h`, `--help` Print help. diff --git a/docs/src/snforge-advanced-features/oracles.md b/docs/src/snforge-advanced-features/oracles.md index 7c96741f5f..ee20e57bf2 100644 --- a/docs/src/snforge-advanced-features/oracles.md +++ b/docs/src/snforge-advanced-features/oracles.md @@ -1,10 +1,5 @@ # Oracles -> ⚠️ **Warning** -> -> Oracles are an experimental feature. -> To enable them, you must pass the `--experimental-oracles` flag to `snforge`. - An [oracle][oracle docs] is an external process (like a script, binary, or web service) that exposes custom logic or data to a Cairo program at runtime. You use it to perform tasks the Cairo VM can't, such as accessing real-world data or executing complex, non-provable computations.