fix tests

This commit is contained in:
Marin Petrunić 2019-11-28 12:13:20 +01:00
parent 34c61bc762
commit 8c10a06d79
7 changed files with 28 additions and 15 deletions

View File

@ -26,8 +26,8 @@
"build-types": "tsc --declaration --project tsconfig.build.json --incremental --outDir lib --emitDeclarationOnly", "build-types": "tsc --declaration --project tsconfig.build.json --incremental --outDir lib --emitDeclarationOnly",
"build-web": "webpack --mode production --entry ./lib/web.js --output ./dist/bls.min.js", "build-web": "webpack --mode production --entry ./lib/web.js --output ./dist/bls.min.js",
"check-types": "tsc --noEmit", "check-types": "tsc --noEmit",
"lint": "eslint --ext .ts src/", "lint": "eslint --color --ext .ts src/",
"lint:fix": "eslint --ext .ts src/ --fix", "lint:fix": "yarn run lint --fix",
"pretest": "yarn check-types", "pretest": "yarn check-types",
"prepublishOnly": "yarn build", "prepublishOnly": "yarn build",
"test:unit": "nyc --cache-dir .nyc_output/.cache -r lcov -e .ts mocha --colors -r ts-node/register 'test/unit/**/*.test.ts' && nyc report", "test:unit": "nyc --cache-dir .nyc_output/.cache -r lcov -e .ts mocha --colors -r ts-node/register 'test/unit/**/*.test.ts' && nyc report",
@ -41,8 +41,7 @@
"@chainsafe/eth2-bls-wasm": "^0.1.0", "@chainsafe/eth2-bls-wasm": "^0.1.0",
"@chainsafe/eth2.0-types": "^0.1.0", "@chainsafe/eth2.0-types": "^0.1.0",
"assert": "^1.4.1", "assert": "^1.4.1",
"bls-wasm": "^0.2.7", "bls-wasm": "^0.2.7"
"js-sha256": "^0.9.0"
}, },
"devDependencies": { "devDependencies": {
"@babel/cli": "^7.2.3", "@babel/cli": "^7.2.3",
@ -67,6 +66,7 @@
"codecov": "^3.1.0", "codecov": "^3.1.0",
"eslint": "^5.14.1", "eslint": "^5.14.1",
"js-yaml": "^3.13.1", "js-yaml": "^3.13.1",
"js-sha256": "^0.9.0",
"mocha": "^6.2.0", "mocha": "^6.2.0",
"nyc": "^13.3.0", "nyc": "^13.3.0",
"sinon": "^7.2.7", "sinon": "^7.2.7",

View File

@ -1,9 +1,9 @@
// eslint-disable-next-line import/no-extraneous-dependencies
import blsWasmWrapper from "@chainsafe/eth2-bls-wasm"; import blsWasmWrapper from "@chainsafe/eth2-bls-wasm";
let blsWrapper: typeof blsWasmWrapper | null = null; let blsWrapper: typeof blsWasmWrapper | null = null;
export async function init(): Promise<typeof blsWasmWrapper> { export async function init(): Promise<typeof blsWasmWrapper> {
if(blsWrapper) return blsWrapper;
await blsWasmWrapper.init(); await blsWasmWrapper.init();
blsWrapper = blsWasmWrapper; blsWrapper = blsWasmWrapper;
return blsWrapper; return blsWrapper;

View File

@ -5,6 +5,7 @@ import {Signature} from "./signature";
import {BLSPubkey, BLSSecretKey, BLSSignature, Domain, Hash} from "@chainsafe/eth2.0-types"; import {BLSPubkey, BLSSecretKey, BLSSignature, Domain, Hash} from "@chainsafe/eth2.0-types";
import {init} from "./context"; import {init} from "./context";
import {PUBLIC_KEY_LENGTH} from "./constants"; import {PUBLIC_KEY_LENGTH} from "./constants";
export {Keypair, PrivateKey, PublicKey, Signature}; export {Keypair, PrivateKey, PublicKey, Signature};

View File

@ -30,6 +30,13 @@ export class PrivateKey {
return new PrivateKey(context.deserializeHexStrToSecretKey(value)); return new PrivateKey(context.deserializeHexStrToSecretKey(value));
} }
public static fromInt(num: number): PrivateKey {
const context = getContext();
const secretKey = new context.SecretKey();
secretKey.setInt(num);
return new PrivateKey(secretKey);
}
public static random(): PrivateKey { public static random(): PrivateKey {
const context = getContext(); const context = getContext();
const secretKey = new context.SecretKey(); const secretKey = new context.SecretKey();

View File

@ -1,5 +1,5 @@
export {verifyInValidSignatureBenchmark} from './verifyInValidSignature'; // export {verifyInValidSignatureBenchmark} from "./verifyInValidSignature";
export {verifyValidSignatureBenchmark} from './verifyValidSignature'; export {verifyValidSignatureBenchmark} from "./verifyValidSignature";
export {verifyValidAggregatedSignature} from './verifyValidAggregatedSignature'; // export {verifyValidAggregatedSignature} from "./verifyValidAggregatedSignature";
export {verifyInvalidAggregatedSignature} from './verifyInvalidAggregatedSignature'; // export {verifyInvalidAggregatedSignature} from "./verifyInvalidAggregatedSignature";
export {aggregateSignaturesBenchmark} from './signatureAggregation'; // export {aggregateSignaturesBenchmark} from "./signatureAggregation";

View File

@ -41,7 +41,7 @@ export function verifyValidAggregatedSignature(dir: string): BenchSuite {
const sha256 = require("js-sha256"); const sha256 = require("js-sha256");
const {aggregateSignatures} = require("../../../src"); const {aggregateSignatures} = require("../../../src");
const message = Buffer.from(sha256.arrayBuffer(Math.random().toString(36))); const message = Buffer.from(sha256.arrayBuffer(Math.random().toString(36)));
const signatures = []; const signatures: any[] = [];
global.messages = []; global.messages = [];
global.keypairs.forEach((keypair) => { global.keypairs.forEach((keypair) => {
signatures.push(keypair.privateKey.signMessage(message, global.domain).toBytesCompressed()); signatures.push(keypair.privateKey.signMessage(message, global.domain).toBytesCompressed());

View File

@ -2,6 +2,7 @@
import {BenchSuite} from "@chainsafe/benchmark-utils"; import {BenchSuite} from "@chainsafe/benchmark-utils";
import {verify} from "../../../src"; import {verify} from "../../../src";
import {sha256} from "js-sha256";
// eslint-disable-next-line @typescript-eslint/no-namespace // eslint-disable-next-line @typescript-eslint/no-namespace
@ -19,6 +20,10 @@ global.require = require;
global.domain = Buffer.alloc(8); global.domain = Buffer.alloc(8);
global.verify = verify; global.verify = verify;
global.message = Buffer.from(sha256.arrayBuffer(Math.random().toString(36)));
export function verifyValidSignatureBenchmark(dir: string): BenchSuite { export function verifyValidSignatureBenchmark(dir: string): BenchSuite {
// Set the function test // Set the function test
@ -32,11 +37,11 @@ export function verifyValidSignatureBenchmark(dir: string): BenchSuite {
name: FUNCTION_NAME, name: FUNCTION_NAME,
testFunctions: [verifyValidSignature], testFunctions: [verifyValidSignature],
setup: function() { setup: function() {
const {Keypair} = require("../../../src"); let i = 0;
const {sha256} = require('js-sha256'); const {Keypair, PrivateKey} = require("../../../src");
const keypair = Keypair.generate(); const keypair = new Keypair(PrivateKey.fromInt(i));
i = i+1;
global.publicKey = keypair.publicKey.toBytesCompressed(); global.publicKey = keypair.publicKey.toBytesCompressed();
global.message = Buffer.from(sha256.arrayBuffer(Math.random().toString(36)));
global.signature = keypair.privateKey.signMessage(Buffer.from(global.message), global.domain).toBytesCompressed(); global.signature = keypair.privateKey.signMessage(Buffer.from(global.message), global.domain).toBytesCompressed();
}, },
file: dir + FUNCTION_NAME + ".txt" file: dir + FUNCTION_NAME + ".txt"