Aere Network public source. Everything here can be checked against the live chain (chain id 2800, https://rpc.aere.network). Scope note, stated up front rather than buried: consensus on chain 2800 is classical secp256k1 ECDSA QBFT. The post-quantum work in this repository is at the signature, precompile, account and transport layers. Nothing here makes the consensus post-quantum, and no document in it should be read as claiming so.
31 lines
1.7 KiB
JavaScript
31 lines
1.7 KiB
JavaScript
// solidity-coverage config. Only `npx hardhat coverage` reads this file.
|
|
// Production `hardhat test` / `compile` / deploy never do.
|
|
//
|
|
// skipFiles is EMPTY ON PURPOSE. Every contract in this repository is
|
|
// instrumented. Nothing is excluded from the denominator to make a percentage
|
|
// look better. If you ever add an entry here, say so in the coverage report,
|
|
// because a skipFiles entry silently shrinks the denominator.
|
|
//
|
|
// Neither `irMinimum` nor `configureYulOptimizer` is set, deliberately. Either
|
|
// one makes the plugin force a GLOBAL optimizer setting that clobbers the
|
|
// per-file overrides in hardhat.config.coverage.js. See the long comment in
|
|
// that file for the plugin source line that causes this.
|
|
//
|
|
// KNOWN LIMIT, stated rather than hidden: a single-process whole-repo coverage
|
|
// run needs more memory than a standard 16 GB CI runner has. Instrumentation
|
|
// keeps a per-statement hit map for every instrumented contract, and the
|
|
// on-chain crypto suites execute enormous statement counts (one Falcon verify
|
|
// runs tens of millions of statements). The run therefore OOMs during the TEST
|
|
// phase, not the compile phase. The compile phase is solved and does complete.
|
|
//
|
|
// The supported way to get a number in CI is to SHARD: run coverage over a
|
|
// subset of test files with --testfiles, then merge the per-shard istanbul
|
|
// JSONs. Merging is arithmetically valid because instrumentation is
|
|
// deterministic over identical sources, so every shard emits identical
|
|
// statement/branch/function maps and the per-counter arrays sum. Keeping
|
|
// skipFiles empty in every shard is what guarantees those maps match.
|
|
module.exports = {
|
|
istanbulFolder: "./coverage",
|
|
skipFiles: [],
|
|
};
|