Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 32 additions & 38 deletions build/main.cjs
Original file line number Diff line number Diff line change
@@ -1,19 +1,13 @@
'use strict';

Object.defineProperty(exports, '__esModule', { value: true });

var ffjavascript = require('ffjavascript');
var blake2b = require('blake2b');
var createBlakeHash = require('blake-hash');
var ethers = require('ethers');
var keccak256 = require('@ethersproject/keccak256');
var strings = require('@ethersproject/strings');
var bytes = require('@ethersproject/bytes');
var assert = require('assert');

function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }

var blake2b__default = /*#__PURE__*/_interopDefaultLegacy(blake2b);
var createBlakeHash__default = /*#__PURE__*/_interopDefaultLegacy(createBlakeHash);
var assert__default = /*#__PURE__*/_interopDefaultLegacy(assert);

async function buildBabyJub() {
const bn128 = await ffjavascript.getCurveFromName("bn128", true);
return new BabyJub(bn128.Fr);
Expand Down Expand Up @@ -170,9 +164,9 @@ class PedersenHash {

baseHash(type, S) {
if (type == "blake") {
return createBlakeHash__default["default"]("blake256").update(S).digest();
return createBlakeHash("blake256").update(S).digest();
} else if (type == "blake2b") {
return Buffer.from(blake2b__default["default"](32).update(Buffer.from(S)).digest());
return Buffer.from(blake2b(32).update(Buffer.from(S)).digest());
}
}

Expand Down Expand Up @@ -293,7 +287,7 @@ class Mimc7 {
getIV(seed) {
const F = this.F;
if (typeof seed === "undefined") seed = SEED$1;
const c = ethers.ethers.utils.keccak256(ethers.ethers.utils.toUtf8Bytes(seed+"_iv"));
const c = keccak256.keccak256(strings.toUtf8Bytes(seed+"_iv"));
const cn = ffjavascript.Scalar.e(c);
const iv = ffjavascript.Scalar.mod(cn, F.p);
return iv;
Expand All @@ -303,9 +297,9 @@ class Mimc7 {
const F = this.F;
if (typeof nRounds === "undefined") nRounds = NROUNDS$1;
const cts = new Array(nRounds);
let c = ethers.ethers.utils.keccak256(ethers.ethers.utils.toUtf8Bytes(SEED$1));
let c = keccak256.keccak256(strings.toUtf8Bytes(SEED$1));
for (let i=1; i<nRounds; i++) {
c = ethers.ethers.utils.keccak256(c);
c = keccak256.keccak256(c);

cts[i] = F.e(c);
}
Expand Down Expand Up @@ -25602,7 +25596,7 @@ class MimcSponge {
getIV (seed) {
const F = this.F;
if (typeof seed === "undefined") seed = SEED;
const c = ethers.ethers.utils.keccak256(ethers.ethers.utils.toUtf8Bytes(seed+"_iv"));
const c = keccak256.keccak256(strings.toUtf8Bytes(seed+"_iv"));
const cn = ffjavascript.Scalar.e(c);
const iv = cn.mod(F.p);
return iv;
Expand All @@ -25612,8 +25606,8 @@ class MimcSponge {
const F = this.F;
if (typeof nRounds === "undefined") nRounds = NROUNDS;
const cts = new Array(nRounds);
let c = ethers.ethers.utils.keccak256(ethers.ethers.utils.toUtf8Bytes(SEED)); for (let i=1; i<nRounds; i++) {
c = ethers.ethers.utils.keccak256(c);
let c = keccak256.keccak256(strings.toUtf8Bytes(SEED)); for (let i=1; i<nRounds; i++) {
c = keccak256.keccak256(c);

cts[i] = F.e(c);
}
Expand Down Expand Up @@ -25710,22 +25704,22 @@ class Eddsa {

prv2pub(prv) {
this.babyJub.F;
const sBuff = this.pruneBuffer(createBlakeHash__default["default"]("blake512").update(Buffer.from(prv)).digest());
const sBuff = this.pruneBuffer(createBlakeHash("blake512").update(Buffer.from(prv)).digest());
let s = ffjavascript.Scalar.fromRprLE(sBuff, 0, 32);
const A = this.babyJub.mulPointEscalar(this.babyJub.Base8, ffjavascript.Scalar.shr(s,3));
return A;
}

signPedersen(prv, msg) {
this.babyJub.F;
const sBuff = this.pruneBuffer(createBlakeHash__default["default"]("blake512").update(Buffer.from(prv)).digest());
const sBuff = this.pruneBuffer(createBlakeHash("blake512").update(Buffer.from(prv)).digest());
const s = ffjavascript.Scalar.fromRprLE(sBuff, 0, 32);
const A = this.babyJub.mulPointEscalar(this.babyJub.Base8, ffjavascript.Scalar.shr(s, 3));

const composeBuff = new Uint8Array(32 + msg.length);
composeBuff.set(sBuff.slice(32), 0);
composeBuff.set(msg, 32);
const rBuff = createBlakeHash__default["default"]("blake512").update(Buffer.from(composeBuff)).digest();
const rBuff = createBlakeHash("blake512").update(Buffer.from(composeBuff)).digest();
let r = ffjavascript.Scalar.mod(ffjavascript.Scalar.fromRprLE(rBuff, 0, 64), this.babyJub.subOrder);
const R8 = this.babyJub.mulPointEscalar(this.babyJub.Base8, r);
const R8p = this.babyJub.packPoint(R8);
Expand Down Expand Up @@ -25754,15 +25748,15 @@ class Eddsa {

signMiMC(prv, msg) {
const F = this.babyJub.F;
const sBuff = this.pruneBuffer(createBlakeHash__default["default"]("blake512").update(Buffer.from(prv)).digest());
const sBuff = this.pruneBuffer(createBlakeHash("blake512").update(Buffer.from(prv)).digest());
const s = ffjavascript.Scalar.fromRprLE(sBuff, 0, 32);
const A = this.babyJub.mulPointEscalar(this.babyJub.Base8, ffjavascript.Scalar.shr(s, 3));


const composeBuff = new Uint8Array(32 + msg.length);
composeBuff.set(sBuff.slice(32), 0);
F.toRprLE(composeBuff, 32, msg);
const rBuff = createBlakeHash__default["default"]("blake512").update(Buffer.from(composeBuff)).digest();
const rBuff = createBlakeHash("blake512").update(Buffer.from(composeBuff)).digest();
let r = ffjavascript.Scalar.mod(ffjavascript.Scalar.fromRprLE(rBuff, 0, 64), this.babyJub.subOrder);
const R8 = this.babyJub.mulPointEscalar(this.babyJub.Base8, r);

Expand All @@ -25783,14 +25777,14 @@ class Eddsa {

signMiMCSponge(prv, msg) {
const F = this.babyJub.F;
const sBuff = this.pruneBuffer(createBlakeHash__default["default"]("blake512").update(Buffer.from(prv)).digest());
const sBuff = this.pruneBuffer(createBlakeHash("blake512").update(Buffer.from(prv)).digest());
const s = ffjavascript.Scalar.fromRprLE(sBuff, 0, 32);
const A = this.babyJub.mulPointEscalar(this.babyJub.Base8, ffjavascript.Scalar.shr(s, 3));

const composeBuff = new Uint8Array(32 + msg.length);
composeBuff.set(sBuff.slice(32), 0);
F.toRprLE(composeBuff, 32, msg);
const rBuff = createBlakeHash__default["default"]("blake512").update(Buffer.from(composeBuff)).digest();
const rBuff = createBlakeHash("blake512").update(Buffer.from(composeBuff)).digest();
let r = ffjavascript.Scalar.mod(ffjavascript.Scalar.fromRprLE(rBuff, 0, 64), this.babyJub.subOrder);
const R8 = this.babyJub.mulPointEscalar(this.babyJub.Base8, r);

Expand All @@ -25811,14 +25805,14 @@ class Eddsa {

signPoseidon(prv, msg) {
const F = this.babyJub.F;
const sBuff = this.pruneBuffer(createBlakeHash__default["default"]("blake512").update(Buffer.from(prv)).digest());
const sBuff = this.pruneBuffer(createBlakeHash("blake512").update(Buffer.from(prv)).digest());
const s = ffjavascript.Scalar.fromRprLE(sBuff, 0, 32);
const A = this.babyJub.mulPointEscalar(this.babyJub.Base8, ffjavascript.Scalar.shr(s, 3));

const composeBuff = new Uint8Array(32 + msg.length);
composeBuff.set(sBuff.slice(32), 0);
F.toRprLE(composeBuff, 32, msg);
const rBuff = createBlakeHash__default["default"]("blake512").update(Buffer.from(composeBuff)).digest();
const rBuff = createBlakeHash("blake512").update(Buffer.from(composeBuff)).digest();
let r = ffjavascript.Scalar.mod(ffjavascript.Scalar.fromRprLE(rBuff, 0, 64), this.babyJub.subOrder);
const R8 = this.babyJub.mulPointEscalar(this.babyJub.Base8, r);

Expand Down Expand Up @@ -25992,7 +25986,7 @@ class Contract {
genLoadedLength = C.code.length;
}

return ethers.ethers.utils.hexlify(C.code.concat(this.code));
return bytes.hexlify(C.code.concat(this.code));
}

stop() { this.code.push(0x00); }
Expand Down Expand Up @@ -26118,7 +26112,7 @@ class Contract {
S = "0x" +S;
data = S;
}
const d = ethers.ethers.utils.arrayify(data);
const d = bytes.arrayify(data);
if (d.length == 0 || d.length > 32) {
throw new Error("Assertion failed");
}
Expand Down Expand Up @@ -26164,7 +26158,7 @@ class Contract {

function createCode$2(seed, n) {

let ci = ethers.ethers.utils.keccak256(ethers.ethers.utils.toUtf8Bytes(seed));
let ci = keccak256.keccak256(strings.toUtf8Bytes(seed));
const C = new Contract();

C.push(0x44);
Expand Down Expand Up @@ -26206,7 +26200,7 @@ function createCode$2(seed, n) {
C.mulmod(); // r=t^7 k q

for (let i=0; i<n-1; i++) {
ci = ethers.ethers.utils.keccak256(ci);
ci = keccak256.keccak256(ci);
C.dup(2); // q r k q
C.dup(0); // q q r k q
C.dup(0); // q q q r k q
Expand Down Expand Up @@ -26274,7 +26268,7 @@ var _mimc7Contract = /*#__PURE__*/Object.freeze({

function createCode$1(seed, n) {

let ci = ethers.ethers.utils.keccak256(ethers.ethers.utils.toUtf8Bytes(seed));
let ci = keccak256.keccak256(strings.toUtf8Bytes(seed));

const C = new Contract();

Expand Down Expand Up @@ -26317,7 +26311,7 @@ function createCode$1(seed, n) {

for (let i=0; i<n-1; i++) {
if (i < n-2) {
ci = ethers.ethers.utils.keccak256(ci);
ci = keccak256.keccak256(ci);
} else {
ci = "0x00";
}
Expand Down Expand Up @@ -26700,10 +26694,10 @@ function createCode(nInputs) {
C.calldataload();
C.div();
C.dup(0);
C.push(ethers.ethers.utils.keccak256(ethers.ethers.utils.toUtf8Bytes(`poseidon(uint256[${nInputs}])`)).slice(0, 10)); // poseidon(uint256[n])
C.push(keccak256.keccak256(strings.toUtf8Bytes(`poseidon(uint256[${nInputs}])`)).slice(0, 10)); // poseidon(uint256[n])
C.eq();
C.swap(1);
C.push(ethers.ethers.utils.keccak256(ethers.ethers.utils.toUtf8Bytes(`poseidon(bytes32[${nInputs}])`)).slice(0, 10)); // poseidon(bytes32[n])
C.push(keccak256.keccak256(strings.toUtf8Bytes(`poseidon(bytes32[${nInputs}])`)).slice(0, 10)); // poseidon(bytes32[n])
C.eq();
C.or();
C.jmpi("start");
Expand Down Expand Up @@ -26845,8 +26839,8 @@ async function buildPoseidon$1() {
const pow5 = a => F.mul(a, F.square(F.square(a, a)));

function poseidon(inputs, initState, nOut) {
assert__default["default"](inputs.length > 0);
assert__default["default"](inputs.length <= N_ROUNDS_P.length);
assert(inputs.length > 0);
assert(inputs.length <= N_ROUNDS_P.length);

const t = inputs.length + 1;
const nRoundsF = N_ROUNDS_F;
Expand Down Expand Up @@ -26919,8 +26913,8 @@ async function buildPoseidon() {
const pow5 = a => F.mul(a, F.square(F.square(a, a)));

function poseidon(inputs, initState, nOut) {
assert__default["default"](inputs.length > 0);
assert__default["default"](inputs.length <= N_ROUNDS_P.length);
assert(inputs.length > 0);
assert(inputs.length <= N_ROUNDS_P.length);

if (initState) {
initState = F.e(initState);
Expand Down
Loading