provekit_nargo_cli 1.0.0-beta.20-alpha.1

Noir's package manager
Documentation
---
source: tooling/nargo_cli/tests/execute.rs
expression: expanded_code
---
fn main(bn254_modulus_be_bytes: [u8; 32], bn254_modulus_be_bits: [bool; 254]) {
    let modulus_size: u64 = std::field::modulus_num_bits();
    assert(modulus_size == 254_u64);
    assert_reverse(
        std::field::modulus_be_bytes(),
        std::field::modulus_le_bytes(),
    );
    let modulus_be_byte_array: [u8] = std::field::modulus_be_bytes();
    for i in 0_u32..32_u32 {
        assert(modulus_be_byte_array[i] == bn254_modulus_be_bytes[i]);
    }
    let modulus_le_byte_array: [u8] = std::field::modulus_le_bytes();
    for i in 0_u32..32_u32 {
        assert(modulus_le_byte_array[i] == bn254_modulus_be_bytes[31_u32 - i]);
    }
    let modulus_be_bits: [bool] = std::field::modulus_be_bits();
    for i in 0_u32..254_u32 {
        assert(modulus_be_bits[i] == bn254_modulus_be_bits[i]);
    }
    let modulus_le_bits: [bool] = std::field::modulus_le_bits();
    for i in 0_u32..254_u32 {
        assert(modulus_le_bits[i] == bn254_modulus_be_bits[253_u32 - i]);
    }
}

fn assert_reverse(forwards: [u8], backwards: [u8]) {
    for i in 0_u32..32_u32 {
        assert(forwards[i] == backwards[31_u32 - i]);
    }
}