arnaucube
arnaucube/ark-r1cs-stdPublic Self-hosted repository
convert nonnative constant to little endian (#127)

Chris Sosnin 48099298+slumber@users.noreply.github.com
Thu, 31 Aug 2023 16:10:39 +0300
commit

2ca3bd7d97ac2674a09fed63ace16b4f181531b1

parent

7693d5869087ba8acc651982aa22157bc6befdec

2 files changed, 3 insertions(+), 2 deletions(-)

jump to
M CHANGELOG.md → CHANGELOG.md

@@ -3,6 +3,7 @@

## Pending - [\#117](https://github.com/arkworks-rs/r1cs-std/pull/117) Fix result of `precomputed_base_scalar_mul_le` to not discard previous value. - [\#124](https://github.com/arkworks-rs/r1cs-std/pull/124) Fix `scalar_mul_le` constraints unsatisfiability when short Weierstrass point is zero. +- [\#127](https://github.com/arkworks-rs/r1cs-std/pull/127) Convert `NonNativeFieldVar` constants to little-endian bytes instead of big-endian (`ToBytesGadget`). ### Breaking changes
M src/fields/nonnative/field_var.rs → src/fields/nonnative/field_var.rs

@@ -313,7 +313,7 @@ #[tracing::instrument(target = "r1cs")]

fn to_bytes(&self) -> R1CSResult<Vec<UInt8<BaseField>>> { match self { Self::Constant(c) => Ok(UInt8::constant_vec( - c.into_bigint().to_bytes_be().as_slice(), + c.into_bigint().to_bytes_le().as_slice(), )), Self::Var(v) => v.to_bytes(),

@@ -324,7 +324,7 @@ #[tracing::instrument(target = "r1cs")]

fn to_non_unique_bytes(&self) -> R1CSResult<Vec<UInt8<BaseField>>> { match self { Self::Constant(c) => Ok(UInt8::constant_vec( - c.into_bigint().to_bytes_be().as_slice(), + c.into_bigint().to_bytes_le().as_slice(), )), Self::Var(v) => v.to_non_unique_bytes(), }