@silvana-one/mina-utils
Version:
Silvana Mina Utils
17 lines • 672 B
JavaScript
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