pub fn safe_add(a: u256, b: u256) -> u256 { let result = a + b; require(result >= a, "Addition overflow"); return result; } pub fn safe_sub(a: u256, b: u256) -> u256 { require(a >= b, "Subtraction underflow"); return a - b; } pub fn safe_mul(a: u256, b: u256) -> u256 { if a == 0 { return 0; } let result = a * b; require(result / a == b, "Multiplication overflow"); return result; } pub fn safe_div(a: u256, b: u256) -> u256 { require(b > 0, "Division by zero"); return a / b; } pub fn max(a: u256, b: u256) -> u256 { return if a >= b { a } else { b }; } pub fn min(a: u256, b: u256) -> u256 { return if a <= b { a } else { b }; }