o1js
Version:
TypeScript framework for zk-SNARKs and zkApps
25 lines (22 loc) • 767 B
text/typescript
import { ConstantField, Field } from '../provable/field.js';
import { FieldVar, FieldConst } from '../provable/core/fieldvar.js';
import { MlArray } from './base.js';
export { MlFieldArray, MlFieldConstArray };
type MlFieldArray = MlArray<FieldVar>;
const MlFieldArray = {
to(arr: Field[]): MlArray<FieldVar> {
return MlArray.to(arr.map((x) => x.value));
},
from([, ...arr]: MlArray<FieldVar>) {
return arr.map((x) => new Field(x));
},
};
type MlFieldConstArray = MlArray<FieldConst>;
const MlFieldConstArray = {
to(arr: Field[]): MlArray<FieldConst> {
return MlArray.to(arr.map((x) => x.toConstant().value[1]));
},
from([, ...arr]: MlArray<FieldConst>): ConstantField[] {
return arr.map((x) => new Field(x) as ConstantField);
},
};