UNPKG

@silvana-one/mina-utils

Version:
17 lines 672 B
import { Provable, assert, Bool } from "o1js"; import { Fr } from "./constants.js"; export function convertFieldToCanonicalElement(field) { const bitsField = field.toBits(); assert(bitsField.length === 254, "Field has to be 254 bits"); const element = Provable.witness(Fr.Canonical.provable, () => { return Fr.from(field.toBigInt()); }); const bitsElement = element.toBits(); assert(bitsElement.length === 255, "Element has to be 255 bits"); bitsElement[254].assertEquals(Bool(false)); for (let i = 0; i < 254; i++) { bitsElement[i].assertEquals(bitsField[i]); } return element; } //# sourceMappingURL=convert.js.map