From b64ff7f1d4e31876cd5ef69535b2eb3f52c60eeb Mon Sep 17 00:00:00 2001 From: dapplion Date: Tue, 1 Dec 2020 08:17:25 +0000 Subject: [PATCH 1/5] bump @chainsafe/lodestar-spec-test-util --- package.json | 4 +- test/downloadSpecTests.ts | 16 ++ test/params.ts | 3 + test/spec/aggregate.test.ts | 2 +- test/spec/aggregate_verify.test.ts | 2 +- test/spec/fast_aggregate_verify.test.ts | 2 +- test/spec/sign.test.ts | 2 +- test/spec/verify.test.ts | 2 +- yarn.lock | 225 +++++++++++++----------- 9 files changed, 148 insertions(+), 110 deletions(-) create mode 100644 test/downloadSpecTests.ts diff --git a/package.json b/package.json index ce47294..190a7ae 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ "test:coverage": "nyc --cache-dir .nyc_output/.cache -r lcov -e .ts mocha --colors -r ts-node/register 'test/unit/**/*.test.ts' && nyc report", "test:spec": "mocha --colors -r ts-node/register 'test/spec/**/*.test.ts'", "test": "yarn run test:unit && yarn run test:spec", + "download-test-cases": "ts-node test/downloadSpecTests.ts", "coverage": "codecov -F bls", "benchmark": "ts-node test/benchmark", "benchmark:all": "cd test/benchmark && yarn install && yarn benchmark" @@ -60,8 +61,7 @@ "@babel/preset-typescript": "^7.8.3", "@babel/register": "^7.8.3", "@chainsafe/blst": "^0.1.3", - "@chainsafe/eth2-spec-tests": "0.12.0", - "@chainsafe/lodestar-spec-test-util": "^0.11.0", + "@chainsafe/lodestar-spec-test-util": "^0.12.0", "@types/chai": "^4.2.9", "@types/mocha": "^8.0.4", "@types/randombytes": "^2.0.0", diff --git a/test/downloadSpecTests.ts b/test/downloadSpecTests.ts new file mode 100644 index 0000000..028dedf --- /dev/null +++ b/test/downloadSpecTests.ts @@ -0,0 +1,16 @@ +import {downloadTests} from "@chainsafe/lodestar-spec-test-util"; +import {SPEC_TEST_VERSION, SPEC_TESTS_DIR, SPEC_TEST_TO_DOWNLOAD} from "./params"; + +/* eslint-disable no-console */ + +downloadTests( + { + specVersion: SPEC_TEST_VERSION, + outputDir: SPEC_TESTS_DIR, + testsToDownload: SPEC_TEST_TO_DOWNLOAD, + }, + console.log +).catch((e) => { + console.error(e); + process.exit(1); +}); diff --git a/test/params.ts b/test/params.ts index 513cc91..b58b7a4 100644 --- a/test/params.ts +++ b/test/params.ts @@ -1,2 +1,5 @@ import path from "path"; + +export const SPEC_TEST_VERSION = "v1.0.0"; +export const SPEC_TEST_TO_DOWNLOAD = ["general" as "general"]; export const SPEC_TESTS_DIR = path.join(__dirname, "../node_modules/@chainsafe/eth2-spec-tests/tests"); diff --git a/test/spec/aggregate.test.ts b/test/spec/aggregate.test.ts index 41af125..a62bdb4 100644 --- a/test/spec/aggregate.test.ts +++ b/test/spec/aggregate.test.ts @@ -15,7 +15,7 @@ interface IAggregateSigsTestCase { describeForAllImplementations((bls) => { describeDirectorySpecTest( "bls/aggregate/small", - path.join(SPEC_TESTS_DIR, "general/phase0/bls/aggregate/small"), + path.join(SPEC_TESTS_DIR, "tests/general/phase0/bls/aggregate/small"), (testCase) => { try { const signatures = testCase.data.input; diff --git a/test/spec/aggregate_verify.test.ts b/test/spec/aggregate_verify.test.ts index f7478d8..056b94b 100644 --- a/test/spec/aggregate_verify.test.ts +++ b/test/spec/aggregate_verify.test.ts @@ -18,7 +18,7 @@ interface IAggregateSigsVerifyTestCase { describeForAllImplementations((bls) => { describeDirectorySpecTest( "bls/aggregate_verify/small", - path.join(SPEC_TESTS_DIR, "general/phase0/bls/aggregate_verify/small"), + path.join(SPEC_TESTS_DIR, "tests/general/phase0/bls/aggregate_verify/small"), (testCase) => { const {pubkeys, messages, signature} = testCase.data.input; return bls.verifyMultiple(pubkeys.map(hexToBytes), messages.map(hexToBytes), hexToBytes(signature)); diff --git a/test/spec/fast_aggregate_verify.test.ts b/test/spec/fast_aggregate_verify.test.ts index 8be9ed9..222eecd 100644 --- a/test/spec/fast_aggregate_verify.test.ts +++ b/test/spec/fast_aggregate_verify.test.ts @@ -18,7 +18,7 @@ interface IAggregateSigsVerifyTestCase { describeForAllImplementations((bls) => { describeDirectorySpecTest( "bls/fast_aggregate_verify/small", - path.join(SPEC_TESTS_DIR, "general/phase0/bls/fast_aggregate_verify/small"), + path.join(SPEC_TESTS_DIR, "tests/general/phase0/bls/fast_aggregate_verify/small"), (testCase) => { const {pubkeys, message, signature} = testCase.data.input; return bls.verifyAggregate(pubkeys.map(hexToBytes), hexToBytes(message), hexToBytes(signature)); diff --git a/test/spec/sign.test.ts b/test/spec/sign.test.ts index 5ecc780..5a5f835 100644 --- a/test/spec/sign.test.ts +++ b/test/spec/sign.test.ts @@ -18,7 +18,7 @@ interface ISignMessageTestCase { describeForAllImplementations((bls) => { describeDirectorySpecTest( "bls/sign/small", - path.join(SPEC_TESTS_DIR, "general/phase0/bls/sign/small"), + path.join(SPEC_TESTS_DIR, "tests/general/phase0/bls/sign/small"), (testCase) => { try { const {privkey, message} = testCase.data.input; diff --git a/test/spec/verify.test.ts b/test/spec/verify.test.ts index 06288d3..3e63f26 100644 --- a/test/spec/verify.test.ts +++ b/test/spec/verify.test.ts @@ -18,7 +18,7 @@ interface IVerifyTestCase { describeForAllImplementations((bls) => { describeDirectorySpecTest( "bls/verify/small", - path.join(SPEC_TESTS_DIR, "general/phase0/bls/verify/small"), + path.join(SPEC_TESTS_DIR, "tests/general/phase0/bls/verify/small"), (testCase) => { const {pubkey, message, signature} = testCase.data.input; return bls.verify(hexToBytes(pubkey), hexToBytes(message), hexToBytes(signature)); diff --git a/yarn.lock b/yarn.lock index d6237a9..39100b5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -819,6 +819,15 @@ buffer "^5.4.3" randombytes "^2.1.0" +"@chainsafe/bls@5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@chainsafe/bls/-/bls-5.0.1.tgz#cb9b6a297b76815f4ccdde595f57775305bfcf00" + integrity sha512-MYImjOqlXb7LzR3I7xzBejQDSyQ1gqjWEReSVY6BgnrzRkYe+MNpku9CSi2khrfGn+Tftxl4olPb4GC4kHyBrw== + dependencies: + "@chainsafe/bls-keygen" "^0.3.0" + bls-eth-wasm "^0.4.4" + randombytes "^2.1.0" + "@chainsafe/blst@^0.1.3": version "0.1.3" resolved "https://registry.yarnpkg.com/@chainsafe/blst/-/blst-0.1.3.tgz#b71b1d2cb327fd9654cd22177d5c2e13241bed5d" @@ -827,36 +836,34 @@ node-fetch "^2.6.1" node-gyp "^7.1.2" -"@chainsafe/eth2-spec-tests@0.12.0": +"@chainsafe/lodestar-spec-test-util@^0.12.0": version "0.12.0" - resolved "https://registry.yarnpkg.com/@chainsafe/eth2-spec-tests/-/eth2-spec-tests-0.12.0.tgz#f95ffe5bc20ddaa4d2240cffe1e417877adc8055" - integrity sha512-EECbmI/1SdjSPUaQOkZqBOA6AfhviS7jlXVmAs3P2biJTeH2p0p31V4fZImR2NXAgGVFAP16sRx2OCwflOq0mw== - -"@chainsafe/lodestar-spec-test-util@^0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@chainsafe/lodestar-spec-test-util/-/lodestar-spec-test-util-0.11.0.tgz#23d6d5edf7d1fbea3662a1919857d9ea85fe86a0" - integrity sha512-KlnW2emffpEFMIuaP+Ulr1FSMfm5hg0H2NmJjUE4LTs1U7Vtrp/1e9ALzObYLAT3u9bA5byDtqikg4L3RitbMQ== + resolved "https://registry.yarnpkg.com/@chainsafe/lodestar-spec-test-util/-/lodestar-spec-test-util-0.12.0.tgz#75be0f8455ab92d58719ff0be35e84f3d02000cf" + integrity sha512-FpwzjuUGyUnxMII77bP9D0kig/XDoSLsxytOudR0jwn1P0rZ4PrNVEa2HqqjW/a4YsCqEFFB/TCrnaLJNakpqw== dependencies: - "@chainsafe/lodestar-utils" "^0.11.0" - "@chainsafe/ssz" "^0.6.11" - camelcase "^5.3.1" + "@chainsafe/bls" "5.0.1" + "@chainsafe/lodestar-utils" "^0.12.0" + "@chainsafe/ssz" "^0.6.13" + axios "^0.21.0" chai "^4.2.0" - deepmerge "^4.0.0" - js-yaml "^3.13.1" - mocha "^6.2.2" + mocha "^8.1.1" + rimraf "^3.0.2" + tar "^6.0.5" v8-profiler-next "^1.1.1" -"@chainsafe/lodestar-utils@^0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@chainsafe/lodestar-utils/-/lodestar-utils-0.11.0.tgz#3b16d20646fbca1ee6796684d191e17928556524" - integrity sha512-2hQxkl7H2qHOXb2elxNW5nsenQW/0CWRoZEzyRmJd53jWjkyHOIVwymhKnXp9oy7LsJfPsvlbnbdleLZ/ymqSA== +"@chainsafe/lodestar-utils@^0.12.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@chainsafe/lodestar-utils/-/lodestar-utils-0.12.0.tgz#8db356edcaeed3c8b0a555a18e6e57ee49dcde70" + integrity sha512-LCRXFxp73xQZPH99OVeLUaX4NKpEuUFqAJ7rmnYmrHIum678LDylPGrzw72HB69SMBiTtmbFFuypLwf81gitTQ== dependencies: - "@chainsafe/ssz" "^0.6.11" + "@chainsafe/bls" "5.0.1" + "@chainsafe/ssz" "^0.6.13" + abort-controller "^3.0.0" bigint-buffer "^1.1.5" - camelcase "^5.3.1" chalk "^2.4.2" + event-iterator "^2.0.0" js-yaml "^3.13.1" - winston "^3.2.1" + winston "^3.3.3" winston-transport "^4.3.0" "@chainsafe/persistent-merkle-tree@^0.2.1": @@ -866,7 +873,7 @@ dependencies: "@chainsafe/as-sha256" "^0.2.0" -"@chainsafe/ssz@^0.6.11": +"@chainsafe/ssz@^0.6.13": version "0.6.13" resolved "https://registry.yarnpkg.com/@chainsafe/ssz/-/ssz-0.6.13.tgz#94333993b9eb5e8ae7798fc3e4a5db36f846e5ec" integrity sha512-pKb1nlIRD3YvVlgbgB5kir+H2tu1pUhiZd9SIrwUr3xq/vQvoYcs3z+DBrhl1WtW5zwQorxgMe/1pnXp7raLtA== @@ -875,6 +882,15 @@ "@chainsafe/persistent-merkle-tree" "^0.2.1" case "^1.6.3" +"@dabh/diagnostics@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.2.tgz#290d08f7b381b8f94607dc8f471a12c675f9db31" + integrity sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q== + dependencies: + colorspace "1.1.x" + enabled "2.0.x" + kuler "^2.0.0" + "@istanbuljs/load-nyc-config@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz#10602de5570baea82f8afbfa2630b24e7a8cfe5b" @@ -1141,6 +1157,13 @@ abbrev@1: resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== +abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + accepts@~1.3.4: version "1.3.7" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" @@ -1425,13 +1448,18 @@ async-limiter@~1.0.0: resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== -async@^2.6.1, async@^2.6.2: +async@^2.6.2: version "2.6.3" resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== dependencies: lodash "^4.17.14" +async@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720" + integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw== + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -1452,6 +1480,13 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== +axios@^0.21.0: + version "0.21.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.0.tgz#26df088803a2350dff2c27f96fef99fe49442aca" + integrity sha512-fmkJBknJKoZwem3/IKSSLpkdNXZeBu5Q7GA/aRsr2btgrptmSCxi2oFjZHqGdK9DoTil9PIHlPIZw2EcRJXRvw== + dependencies: + follow-redirects "^1.10.0" + babel-plugin-dynamic-import-node@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f" @@ -1824,12 +1859,7 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -camelcase@^5.0.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -camelcase@^5.3.1: +camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== @@ -2074,11 +2104,6 @@ color@3.0.x: color-convert "^1.9.1" color-string "^1.5.2" -colornames@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/colornames/-/colornames-1.1.1.tgz#f8889030685c7c4ff9e2a559f5077eb76a816f96" - integrity sha1-+IiQMGhcfE/54qVZ9Qd+t2qBb5Y= - colors@^1.1.0, colors@^1.1.2, colors@^1.2.1: version "1.4.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" @@ -2378,11 +2403,6 @@ deep-is@~0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= -deepmerge@^4.0.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== - default-require-extensions@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-3.0.0.tgz#e03f93aac9b2b6443fc52e5e4a37b3ad9ad8df96" @@ -2452,15 +2472,6 @@ di@^0.0.1: resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" integrity sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw= -diagnostics@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/diagnostics/-/diagnostics-1.1.1.tgz#cab6ac33df70c9d9a727490ae43ac995a769b22a" - integrity sha512-8wn1PmdunLJ9Tqbx+Fx/ZEuHfJf4NKSN2ZBj7SJC/OWRWha843+WsTjqMe1B5E3p28jqBlp+mJ2fPVxPyNgYKQ== - dependencies: - colorspace "1.1.x" - enabled "1.0.x" - kuler "1.0.x" - diff@4.0.2, diff@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" @@ -2566,12 +2577,10 @@ emojis-list@^3.0.0: resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== -enabled@1.0.x: - version "1.0.2" - resolved "https://registry.yarnpkg.com/enabled/-/enabled-1.0.2.tgz#965f6513d2c2d1c5f4652b64a2e3396467fc2f93" - integrity sha1-ll9lE9LC0cX0ZStkouM5ZGf8L5M= - dependencies: - env-variable "0.0.x" +enabled@2.0.x: + version "2.0.0" + resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2" + integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== encodeurl@~1.0.2: version "1.0.2" @@ -2653,11 +2662,6 @@ env-paths@^2.2.0: resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43" integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA== -env-variable@0.0.x: - version "0.0.6" - resolved "https://registry.yarnpkg.com/env-variable/-/env-variable-0.0.6.tgz#74ab20b3786c545b62b4a4813ab8cf22726c9808" - integrity sha512-bHz59NlBbtS0NhftmR8+ExBEekE7br0e01jw+kk0NDro7TtZzBYZ5ScGPs3OmwnpyfHTHOtr1Y6uedCdrIldtg== - errno@^0.1.3, errno@~0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" @@ -2873,6 +2877,16 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== +event-iterator@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/event-iterator/-/event-iterator-2.0.0.tgz#10f06740cc1e9fd6bc575f334c2bc1ae9d2dbf62" + integrity sha512-KGft0ldl31BZVV//jj+IAIGCxkvvUkkON+ScH6zfoX+l+omX6001ggyRSpI0Io2Hlro0ThXotswCtfzS8UkIiQ== + +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + eventemitter3@^4.0.0: version "4.0.7" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" @@ -3002,10 +3016,10 @@ fast-safe-stringify@^2.0.4: resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz#124aa885899261f68aedb42a7c080de9da608743" integrity sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA== -fecha@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fecha/-/fecha-2.3.3.tgz#948e74157df1a32fd1b12c3a3c3cdcb6ec9d96cd" - integrity sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg== +fecha@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.0.tgz#3ffb6395453e3f3efff850404f0a59b6747f5f41" + integrity sha512-aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg== figgy-pudding@^3.5.1: version "3.5.1" @@ -3146,7 +3160,12 @@ flush-write-stream@^1.0.0: inherits "^2.0.3" readable-stream "^2.3.6" -follow-redirects@^1.0.0: +fn.name@1.x.x: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" + integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== + +follow-redirects@^1.0.0, follow-redirects@^1.10.0: version "1.13.0" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.0.tgz#b42e8d93a2a7eea5ed88633676d6597bc8e384db" integrity sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA== @@ -4208,12 +4227,10 @@ kind-of@^6.0.0, kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== -kuler@1.0.x: - version "1.0.1" - resolved "https://registry.yarnpkg.com/kuler/-/kuler-1.0.1.tgz#ef7c784f36c9fb6e16dd3150d152677b2b0228a6" - integrity sha512-J9nVUucG1p/skKul6DU3PUZrhs0LPulNaeUOox0IyXDi8S4CztTHs1gQphhuZmzXG7VOQSf6NJfKuzteQLv9gQ== - dependencies: - colornames "^1.1.1" +kuler@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" + integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== lcid@^2.0.0: version "2.0.0" @@ -4338,14 +4355,14 @@ log4js@^4.0.0: rfdc "^1.1.4" streamroller "^1.0.6" -logform@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/logform/-/logform-2.1.2.tgz#957155ebeb67a13164069825ce67ddb5bb2dd360" - integrity sha512-+lZh4OpERDBLqjiwDLpAWNQu6KMjnlXH2ByZwCuSqVPJletw0kTWJf5CgSNAUKn1KUkv3m2cUz/LK8zyEy7wzQ== +logform@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/logform/-/logform-2.2.0.tgz#40f036d19161fc76b68ab50fdc7fe495544492f2" + integrity sha512-N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg== dependencies: colors "^1.2.1" fast-safe-stringify "^2.0.4" - fecha "^2.3.3" + fecha "^4.2.0" ms "^2.1.1" triple-beam "^1.3.0" @@ -4606,7 +4623,7 @@ mkdirp@^1.0.3: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mocha@^6.2.2, mocha@^8.2.1: +mocha@^8.1.1, mocha@^8.2.1: version "8.2.1" resolved "https://registry.yarnpkg.com/mocha/-/mocha-8.2.1.tgz#f2fa68817ed0e53343d989df65ccd358bc3a4b39" integrity sha512-cuLBVfyFfFqbNR0uUKbDGXKGk+UDFe6aR4os78XIrMQpZl/nv7JYHcvP5MFIAb374b2zFXsdgEGwmzMtP0Xg8w== @@ -4967,10 +4984,12 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" -one-time@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/one-time/-/one-time-0.0.4.tgz#f8cdf77884826fe4dff93e3a9cc37b1e4480742e" - integrity sha1-+M33eISCb+Tf+T46nMN7HkSAdC4= +one-time@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45" + integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g== + dependencies: + fn.name "1.x.x" onetime@^5.1.0: version "5.1.0" @@ -5487,7 +5506,7 @@ read-pkg@^2.0.0: normalize-package-data "^2.3.2" path-type "^2.0.0" -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@^2.3.7, readable-stream@~2.3.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -5500,7 +5519,7 @@ read-pkg@^2.0.0: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.1.1: +readable-stream@^3.4.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -6333,7 +6352,7 @@ tapable@^1.0.0, tapable@^1.1.3: resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== -tar@^6.0.2: +tar@^6.0.2, tar@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/tar/-/tar-6.0.5.tgz#bde815086e10b39f1dcd298e89d596e1535e200f" integrity sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg== @@ -6881,20 +6900,28 @@ winston-transport@^4.3.0: readable-stream "^2.3.6" triple-beam "^1.2.0" -winston@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/winston/-/winston-3.2.1.tgz#63061377976c73584028be2490a1846055f77f07" - integrity sha512-zU6vgnS9dAWCEKg/QYigd6cgMVVNwyTzKs81XZtTFuRwJOcDdBg7AU0mXVyNbs7O5RH2zdv+BdNZUlx7mXPuOw== +winston-transport@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.4.0.tgz#17af518daa690d5b2ecccaa7acf7b20ca7925e59" + integrity sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw== dependencies: - async "^2.6.1" - diagnostics "^1.1.1" - is-stream "^1.1.0" - logform "^2.1.1" - one-time "0.0.4" - readable-stream "^3.1.1" + readable-stream "^2.3.7" + triple-beam "^1.2.0" + +winston@^3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/winston/-/winston-3.3.3.tgz#ae6172042cafb29786afa3d09c8ff833ab7c9170" + integrity sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw== + dependencies: + "@dabh/diagnostics" "^2.0.2" + async "^3.1.0" + is-stream "^2.0.0" + logform "^2.2.0" + one-time "^1.0.0" + readable-stream "^3.4.0" stack-trace "0.0.x" triple-beam "^1.3.0" - winston-transport "^4.3.0" + winston-transport "^4.4.0" word-wrap@~1.2.3: version "1.2.3" @@ -6997,15 +7024,7 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yargs-parser@13.1.2, yargs-parser@^13.1.0: - version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^13.1.2: +yargs-parser@13.1.2, yargs-parser@^13.1.0, yargs-parser@^13.1.2: version "13.1.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== From fa3c9a8c47172b289d33bea07de380ff2bf5dffd Mon Sep 17 00:00:00 2001 From: dapplion Date: Tue, 1 Dec 2020 08:22:58 +0000 Subject: [PATCH 2/5] Store spec tests data in local directory --- .gitignore | 3 +++ test/params.ts | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 0e4aaad..2a1ace1 100644 --- a/.gitignore +++ b/.gitignore @@ -67,3 +67,6 @@ lib/ benchmark-reports .vscode/ + +# Eth2.0 spec tests data +test/spec-tests diff --git a/test/params.ts b/test/params.ts index b58b7a4..0be2cf5 100644 --- a/test/params.ts +++ b/test/params.ts @@ -2,4 +2,4 @@ import path from "path"; export const SPEC_TEST_VERSION = "v1.0.0"; export const SPEC_TEST_TO_DOWNLOAD = ["general" as "general"]; -export const SPEC_TESTS_DIR = path.join(__dirname, "../node_modules/@chainsafe/eth2-spec-tests/tests"); +export const SPEC_TESTS_DIR = path.join(__dirname, "spec-tests"); From 4e2f60b5b8257e9e8898047babca099f15dd3759 Mon Sep 17 00:00:00 2001 From: dapplion Date: Tue, 1 Dec 2020 08:29:19 +0000 Subject: [PATCH 3/5] Fix benchmark setup --- {test/benchmark => benchmark}/index.ts | 6 +++--- {test/benchmark => benchmark}/noble.ts | 2 +- {test/benchmark => benchmark}/package.json | 3 ++- {test/benchmark => benchmark}/runner.ts | 0 {test/benchmark => benchmark}/yarn.lock | 0 package.json | 4 ++-- tsconfig.json | 1 - 7 files changed, 8 insertions(+), 8 deletions(-) rename {test/benchmark => benchmark}/index.ts (93%) rename {test/benchmark => benchmark}/noble.ts (97%) rename {test/benchmark => benchmark}/package.json (66%) rename {test/benchmark => benchmark}/runner.ts (100%) rename {test/benchmark => benchmark}/yarn.lock (100%) diff --git a/test/benchmark/index.ts b/benchmark/index.ts similarity index 93% rename from test/benchmark/index.ts rename to benchmark/index.ts index a48e22d..72b523d 100644 --- a/test/benchmark/index.ts +++ b/benchmark/index.ts @@ -1,7 +1,7 @@ import {runBenchmark} from "./runner"; -import {runForAllImplementations} from "../switch"; -import {PublicKey, Signature} from "../../src/interface"; -import {range, randomMessage} from "../util"; +import {runForAllImplementations} from "../test/switch"; +import {PublicKey, Signature} from "../src/interface"; +import {range, randomMessage} from "../test/util"; const aggCount = 30; diff --git a/test/benchmark/noble.ts b/benchmark/noble.ts similarity index 97% rename from test/benchmark/noble.ts rename to benchmark/noble.ts index 9d78d25..23f598f 100644 --- a/test/benchmark/noble.ts +++ b/benchmark/noble.ts @@ -1,5 +1,5 @@ import {runBenchmark} from "./runner"; -import {range, randomMessage} from "../util"; +import {range, randomMessage} from "../test/util"; import {generateRandomSecretKey} from "@chainsafe/bls-keygen"; import * as noble from "noble-bls12-381"; diff --git a/test/benchmark/package.json b/benchmark/package.json similarity index 66% rename from test/benchmark/package.json rename to benchmark/package.json index b9b267b..4b404a9 100644 --- a/test/benchmark/package.json +++ b/benchmark/package.json @@ -4,7 +4,8 @@ "main": "index.js", "license": "MIT", "scripts": { - "benchmark": "ts-node index && ts-node noble" + "benchmark": "ts-node index", + "benchmark:all": "ts-node index && ts-node noble" }, "dependencies": { "noble-bls12-381": "^0.6.1" diff --git a/test/benchmark/runner.ts b/benchmark/runner.ts similarity index 100% rename from test/benchmark/runner.ts rename to benchmark/runner.ts diff --git a/test/benchmark/yarn.lock b/benchmark/yarn.lock similarity index 100% rename from test/benchmark/yarn.lock rename to benchmark/yarn.lock diff --git a/package.json b/package.json index 190a7ae..49491ab 100644 --- a/package.json +++ b/package.json @@ -43,8 +43,8 @@ "test": "yarn run test:unit && yarn run test:spec", "download-test-cases": "ts-node test/downloadSpecTests.ts", "coverage": "codecov -F bls", - "benchmark": "ts-node test/benchmark", - "benchmark:all": "cd test/benchmark && yarn install && yarn benchmark" + "benchmark": "ts-node benchmark", + "benchmark:all": "cd benchmark && yarn install && yarn benchmark" }, "dependencies": { "@chainsafe/bls-keygen": "^0.3.0", diff --git a/tsconfig.json b/tsconfig.json index 06734bd..a15932d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,5 @@ { "include": ["src", "test"], - "exclude": ["test/benchmark"], "compilerOptions": { "target": "esnext", "module": "commonjs", From b2101553b13e146cb885e97c030bc49b15fe6fa2 Mon Sep 17 00:00:00 2001 From: dapplion Date: Tue, 1 Dec 2020 08:38:05 +0000 Subject: [PATCH 4/5] Run download-test-cases in CI --- .github/workflows/test.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 999f802..d855bb5 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,6 +23,8 @@ jobs: - name: Unit tests run: yarn test:unit + - name: Download spec tests + run: yarn download-test-cases - name: Spec tests run: yarn test:spec - name: Web tests From 9e3fe5a2d0fc596d59bd1983b5798b1bb95cc49e Mon Sep 17 00:00:00 2001 From: dapplion Date: Tue, 1 Dec 2020 08:40:51 +0000 Subject: [PATCH 5/5] Run benchmark:all on benchmark:all --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 49491ab..3894c57 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "download-test-cases": "ts-node test/downloadSpecTests.ts", "coverage": "codecov -F bls", "benchmark": "ts-node benchmark", - "benchmark:all": "cd benchmark && yarn install && yarn benchmark" + "benchmark:all": "cd benchmark && yarn install && yarn benchmark:all" }, "dependencies": { "@chainsafe/bls-keygen": "^0.3.0",