Make code independent of NodeJS core modules

This commit is contained in:
Jordi
2019-02-12 12:21:44 +01:00
parent 138945bfdc
commit 2635e8d3c9
5 changed files with 23 additions and 20 deletions

View File

@@ -3,9 +3,7 @@ const bigInt = require("snarkjs").bigInt;
const babyJub = require("./babyjub");
const pedersenHash = require("./pedersenHash").hash;
const mimc7 = require("./mimc7");
const crypto = require("crypto");
exports.cratePrvKey = cratePrvKey;
exports.prv2pub= prv2pub;
exports.sign = sign;
exports.signMiMC = signMiMC;
@@ -16,10 +14,6 @@ exports.unpackSignature = unpackSignature;
exports.pruneBuffer = pruneBuffer;
function cratePrvKey() {
return crypto.randomBytes(32);
}
function pruneBuffer(_buff) {
const buff = Buffer.from(_buff);
buff[0] = buff[0] & 0xF8;

View File

@@ -4,7 +4,6 @@
const Web3Utils = require("web3-utils");
const assert = require("assert");
class Contract {
constructor() {
@@ -141,7 +140,9 @@ class Contract {
msize() { this.code.push(0x59); }
gas() { this.code.push(0x5a); }
label(name) {
assert(typeof this.labels[name] == "undefined", "Label already defined");
if (typeof this.labels[name] != "undefined") {
throw new Error("Label already defined");
}
this.labels[name] = this.code.length;
this.code.push(0x5b);
@@ -150,20 +151,23 @@ class Contract {
push(data) {
const d = Web3Utils.hexToBytes(Web3Utils.toHex(data));
assert(d.length>0);
assert(d.length<=32);
if (d.length == 0 || d.length > 32) {
throw new Error("Assertion failed");
}
this.code = this.code.concat([0x5F + d.length], d);
}
dup(n) {
assert(n>=0);
assert(n<16);
if (n < 0 || n >= 16) {
throw new Error("Assertion failed");
}
this.code.push(0x80 + n);
}
swap(n) {
assert(n>=1);
assert(n<=16);
if (n < 1 || n > 16) {
throw new Error("Assertion failed");
}
this.code.push(0x8f + n);
}

View File

@@ -1,7 +1,6 @@
const bn128 = require("snarkjs").bn128;
const bigInt = require("snarkjs").bigInt;
const babyJub = require("./babyjub");
const assert = require("assert");
const createBlakeHash = require("blake-hash");
const GENPOINT_PREFIX = "PedersenGenerator";
@@ -73,7 +72,9 @@ function getBasePoint(pointIdx) {
const p8 = babyJub.mulPointEscalar(p, 8);
assert(babyJub.inSubgroup(p8), "Point not in curve");
if (!babyJub.inSubgroup(p8)) {
throw new Error("Point not in curve");
}
bases[pointIdx] = p8;
return p8;