From a078f50a90d97d26749d46b27c2da38e920723b8 Mon Sep 17 00:00:00 2001 From: phrwlk Date: Sun, 9 Nov 2025 20:58:45 +0200 Subject: [PATCH 1/2] fix(vrf): use div_mod_unsigned and remove unwrap_or_default --- .../builtin_hint_processor/vrf/fq.rs | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/vm/src/hint_processor/builtin_hint_processor/vrf/fq.rs b/vm/src/hint_processor/builtin_hint_processor/vrf/fq.rs index 470a96ac8c..32cd4f8d3a 100644 --- a/vm/src/hint_processor/builtin_hint_processor/vrf/fq.rs +++ b/vm/src/hint_processor/builtin_hint_processor/vrf/fq.rs @@ -6,13 +6,13 @@ use crate::{ builtin_hint_processor::secp::bigint_utils::Uint512, hint_processor_definition::HintReference, }, - math_utils::div_mod, + math_utils::div_mod_unsigned, serde::deserialize_program::ApTracking, stdlib::{collections::HashMap, prelude::*}, types::errors::math_errors::MathError, vm::{errors::hint_errors::HintError, vm_core::VirtualMachine}, }; -use num_bigint::{BigInt, ToBigInt}; +use num_bigint::BigUint; use num_integer::div_rem; use num_traits::{One, Zero}; @@ -98,19 +98,13 @@ pub fn inv_mod_p_uint256( ap_tracking: &ApTracking, ) -> Result<(), HintError> { // 'a' is not used here or in following hints, so we skip it - let b = Uint256::from_var_name("b", vm, ids_data, ap_tracking)? - .pack() - .to_bigint() - .unwrap_or_default(); - let p = Uint256::from_var_name("p", vm, ids_data, ap_tracking)? - .pack() - .to_bigint() - .unwrap_or_default(); + let b = Uint256::from_var_name("b", vm, ids_data, ap_tracking)?.pack(); + let p = Uint256::from_var_name("p", vm, ids_data, ap_tracking)?.pack(); // Main logic: - let b_inverse_mod_p = div_mod(&BigInt::one(), &b, &p)?; + let b_inverse_mod_p = div_mod_unsigned(&BigUint::one(), &b, &p)?; - let res = Uint256::from(&b_inverse_mod_p.to_biguint().unwrap_or_default()); + let res = Uint256::from(&b_inverse_mod_p); res.insert_from_var_name("b_inverse_mod_p", vm, ids_data, ap_tracking) } From 3a780874ed1992e2e423080c8e6c1c06c452a71e Mon Sep 17 00:00:00 2001 From: phrwlk Date: Sun, 9 Nov 2025 21:02:55 +0200 Subject: [PATCH 2/2] Update CHANGELOG.md --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e66e01a0ba..266d7749f3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ #### Upcoming Changes +* fix: use div_mod_unsigned and remove unwrap_or_default in inv_mod_p_uint256 and uint384_div [#2262](https://github.com/lambdaclass/cairo-vm/pull/2262) + #### [3.0.0-rc.4] - 2025-28-10 * fix: error mapping for fee_provision in excess_balance hint [#2236](https://github.com/lambdaclass/cairo-vm/pull/2236)