namespace bulletproofs { RangeProofResult generate_range_proof(sequence> values, sequence blinding, u64 bit_size); boolean sum_check(sequence> input_commitments, sequence> additional_input_values, sequence> output_commitments, sequence> additional_output_values); boolean verify_range_proof(sequence proof, sequence commitment, u64 bit_size); sequence generate_input_commitments(sequence> values, sequence blinding); sequence keygen(); sequence scalar_to_point(sequence input); sequence alt_generator(); sequence scalar_addition(sequence lhs, sequence rhs); sequence scalar_mult(sequence lhs, sequence rhs); sequence scalar_mult_point(sequence input_scalar, sequence public_point); sequence scalar_inverse(sequence input_scalar); sequence scalar_subtraction(sequence lhs, sequence rhs); sequence scalar_mult_hash_to_scalar(sequence input_scalar, sequence public_point); sequence hash_to_scalar(sequence input); sequence point_addition(sequence input_point, sequence public_point); sequence point_subtraction(sequence input_point, sequence public_point); sequence sign_hidden(sequence x, sequence t, sequence a, sequence r); sequence sign_simple(sequence secret, sequence message); boolean verify_simple(sequence message, sequence signature, sequence public_point); boolean verify_hidden(sequence c, sequence t, sequence s1, sequence s2, sequence s3, sequence p_point, sequence c_point); }; // Record type for range proof results dictionary RangeProofResult { sequence proof; sequence commitment; sequence blinding; };