Page MenuHomePhabricator

[ecashaddrjs] Stop using buffer and webpack
ClosedPublic

Authored by bytesofman on Nov 20 2024, 17:54.

Details

Reviewers
emack
Group Reviewers
Restricted Project
Commits
rABC897da0adce80: [ecashaddrjs] Stop using buffer and webpack
Summary

We should not need webpack to build a module. This is an unnecessary complication. It is being used to polyfill Buffer, which does not work in web.

Stop using Buffer. In this way we can get rid of the webpack complication.

(Discovered while looking at what had to be done for eslint and arc lint to work on all libs)

Test Plan

npm test

Diff Detail

Repository
rABC Bitcoin ABC
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

Tail of the build log:

98 packages are looking for funding
  run `npm fund` for details

13 vulnerabilities (3 low, 5 moderate, 5 high)

To address issues that do not require attention, run:
  npm audit fix

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.
CI not configured to test build.

> alias-server@1.0.0 test
> mocha --reporter mocha-junit-reporter --reporter-options mochaFile=test_results/alias-server-junit.xml --reporter-options testsuitesTitle=Alias Server Unit Tests --reporter-options rootSuiteTitle=Alias Server


Error: Cannot find module '/work/apps/alias-server/node_modules/ecashaddrjs/dist/cashaddrjs.js'. Please verify that the package.json has a valid "main" entry
    at tryPackage (node:internal/modules/cjs/loader:487:19)
    at Module._findPath (node:internal/modules/cjs/loader:771:18)
    at Module._resolveFilename (node:internal/modules/cjs/loader:1211:27)
    at Module._load (node:internal/modules/cjs/loader:1051:27)
    at Module.require (node:internal/modules/cjs/loader:1311:19)
    at require (node:internal/modules/helpers:179:18)
    at Object.<anonymous> (/work/apps/alias-server/test/alias.test.js:7:18)
    at Module._compile (node:internal/modules/cjs/loader:1469:14)
    at Module.replacementCompile (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:60:13)
    at Module._extensions..js (node:internal/modules/cjs/loader:1548:10)
    at Object.<anonymous> (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4)
    at Module.load (node:internal/modules/cjs/loader:1288:32)
    at Module._load (node:internal/modules/cjs/loader:1104:12)
    at cjsLoader (node:internal/modules/esm/translators:346:17)
    at ModuleWrap.<anonymous> (node:internal/modules/esm/translators:286:7)
    at ModuleJob.run (node:internal/modules/esm/module_job:234:25)
    at async ModuleLoader.import (node:internal/modules/esm/loader:473:24)
    at async formattedImport (/work/apps/alias-server/node_modules/mocha/lib/nodejs/esm-utils.js:9:14)
    at async exports.requireOrImport (/work/apps/alias-server/node_modules/mocha/lib/nodejs/esm-utils.js:42:28)
    at async exports.loadFilesAsync (/work/apps/alias-server/node_modules/mocha/lib/nodejs/esm-utils.js:100:20)
    at async singleRun (/work/apps/alias-server/node_modules/mocha/lib/cli/run-helpers.js:125:3)
    at async exports.handler (/work/apps/alias-server/node_modules/mocha/lib/cli/run.js:370:5)
----------|---------|----------|---------|---------|-------------------
File      | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
----------|---------|----------|---------|---------|-------------------
All files |       0 |        0 |       0 |       0 |                   
----------|---------|----------|---------|---------|-------------------

##teamcity[blockOpened name='Code Coverage Summary']
##teamcity[buildStatisticValue key='CodeCoverageAbsBCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsBTotal' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsRCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsRTotal' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsMCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsMTotal' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsLCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsLTotal' value='0']
##teamcity[blockClosed name='Code Coverage Summary']
mv: cannot stat 'test_results/alias-server-junit.xml': No such file or directory
Build alias-server-tests failed with exit code 1

Tail of the build log:

added 363 packages, and audited 366 packages in 2s

60 packages are looking for funding
  run `npm fund` for details

2 vulnerabilities (1 moderate, 1 high)

To address all issues, run:
  npm audit fix

Run `npm audit` for details.

> ecash-lib@0.2.1 build
> tsc && tsc -p ./tsconfig.build.json && cp -r ./src/ffi ./dist

Installing ecash-agora dependencies...
/work/modules/ecash-agora /work/modules/ecash-lib /work/modules/ecash-lib-wasm /work/modules/ecash-script /work/modules/chronik-client /work/modules/mock-chronik-client /work/modules/ecashaddrjs /work/abc-ci-builds/cashtab-tests

added 364 packages, and audited 367 packages in 1s

60 packages are looking for funding
  run `npm fund` for details

2 vulnerabilities (1 moderate, 1 high)

To address all issues, run:
  npm audit fix

Run `npm audit` for details.

> ecash-agora@0.1.1 build
> tsc && tsc -p ./tsconfig.build.json

/work/cashtab /work/modules/ecash-agora /work/modules/ecash-lib /work/modules/ecash-lib-wasm /work/modules/ecash-script /work/modules/chronik-client /work/modules/mock-chronik-client /work/modules/ecashaddrjs /work/abc-ci-builds/cashtab-tests
npm warn deprecated @humanwhocodes/config-array@0.11.14: Use @eslint/config-array instead
npm warn deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm warn deprecated eslint@8.56.0: This version is no longer supported. Please see https://eslint.org/version-support for other options.

added 1483 packages, and audited 3329 packages in 24s

323 packages are looking for funding
  run `npm fund` for details

4 vulnerabilities (2 moderate, 2 high)

To address all issues, run:
  npm audit fix

Run `npm audit` for details.

> cashtab@2.54.1 build
> node scripts/build.js

Creating an optimized production build...
Failed to compile.

Module not found: Error: Can't resolve 'ecashaddrjs' in '/work/cashtab/src/validation'


Build cashtab-tests failed with exit code 1

Tail of the build log:

Run `npm audit` for details.
CI not configured to test build.

> ecash-herald@2.0.0 test
> mocha --reporter mocha-junit-reporter --reporter-options mochaFile=test_results/ecash-herald-junit.xml --reporter-options testsuitesTitle=Ecash Herald Unit Tests --reporter-options rootSuiteTitle=Ecash Herald


Error: Cannot find module '/work/modules/mock-chronik-client/node_modules/ecashaddrjs/dist/cashaddrjs.js'. Please verify that the package.json has a valid "main" entry
    at tryPackage (node:internal/modules/cjs/loader:487:19)
    at Function.Module._findPath (node:internal/modules/cjs/loader:771:18)
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:1211:27)
    at Function.Module._resolveFilename.sharedData.moduleResolveFilenameHook.installedValue [as _resolveFilename] (/work/apps/ecash-herald/node_modules/@cspotcode/source-map-support/source-map-support.js:811:30)
    at Function.Module._load (node:internal/modules/cjs/loader:1051:27)
    at Module.require (node:internal/modules/cjs/loader:1311:19)
    at require (node:internal/modules/helpers:179:18)
    at Object.<anonymous> (/work/modules/mock-chronik-client/index.js:5:18)
    at Module._compile (node:internal/modules/cjs/loader:1469:14)
    at Module.replacementCompile (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:60:13)
    at Module._extensions..js (node:internal/modules/cjs/loader:1548:10)
    at /usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4
    at require.extensions.<computed> (/work/apps/ecash-herald/node_modules/ts-node/src/index.ts:1608:43)
    at Object.<anonymous> (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4)
    at Module.load (node:internal/modules/cjs/loader:1288:32)
    at Function.Module._load (node:internal/modules/cjs/loader:1104:12)
    at Module.require (node:internal/modules/cjs/loader:1311:19)
    at require (node:internal/modules/helpers:179:18)
    at Object.<anonymous> (/work/apps/ecash-herald/test/chronik.test.ts:7:1)
    at Module._compile (node:internal/modules/cjs/loader:1469:14)
    at Module.replacementCompile (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:60:13)
    at Module.m._compile (/work/apps/ecash-herald/node_modules/ts-node/src/index.ts:1618:23)
    at module.exports (/usr/lib/node_modules/nyc/node_modules/default-require-extensions/js.js:7:9)
    at /usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4
    at require.extensions.<computed> (/work/apps/ecash-herald/node_modules/ts-node/src/index.ts:1621:12)
    at Object.<anonymous> (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4)
    at Module.load (node:internal/modules/cjs/loader:1288:32)
    at Function.Module._load (node:internal/modules/cjs/loader:1104:12)
    at Module.require (node:internal/modules/cjs/loader:1311:19)
    at require (node:internal/modules/helpers:179:18)
    at Object.exports.requireOrImport (/work/apps/ecash-herald/node_modules/mocha/lib/nodejs/esm-utils.js:53:16)
    at async Object.exports.loadFilesAsync (/work/apps/ecash-herald/node_modules/mocha/lib/nodejs/esm-utils.js:100:20)
    at async singleRun (/work/apps/ecash-herald/node_modules/mocha/lib/cli/run-helpers.js:125:3)
    at async Object.exports.handler (/work/apps/ecash-herald/node_modules/mocha/lib/cli/run.js:370:5)
----------|---------|----------|---------|---------|-------------------
File      | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
----------|---------|----------|---------|---------|-------------------
All files |       0 |        0 |       0 |       0 |                   
----------|---------|----------|---------|---------|-------------------

##teamcity[blockOpened name='Code Coverage Summary']
##teamcity[buildStatisticValue key='CodeCoverageAbsBCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsBTotal' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsRCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsRTotal' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsMCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsMTotal' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsLCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsLTotal' value='0']
##teamcity[blockClosed name='Code Coverage Summary']
mv: cannot stat 'test_results/ecash-herald-junit.xml': No such file or directory
Build ecash-herald-tests failed with exit code 1

Tail of the build log:

secrets.ts exists, proceeding to build...

> token-server@0.0.0 test
> mocha --reporter mocha-junit-reporter --reporter-options mochaFile=test_results/token-server-junit.xml --reporter-options testsuitesTitle=Token Server Unit Tests --reporter-options rootSuiteTitle=Token Server


Error: Cannot find module '/work/modules/mock-chronik-client/node_modules/ecashaddrjs/dist/cashaddrjs.js'. Please verify that the package.json has a valid "main" entry
    at tryPackage (node:internal/modules/cjs/loader:487:19)
    at Function.Module._findPath (node:internal/modules/cjs/loader:771:18)
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:1211:27)
    at Function.Module._resolveFilename.sharedData.moduleResolveFilenameHook.installedValue [as _resolveFilename] (/work/apps/token-server/node_modules/@cspotcode/source-map-support/source-map-support.js:811:30)
    at Function.Module._load (node:internal/modules/cjs/loader:1051:27)
    at Module.require (node:internal/modules/cjs/loader:1311:19)
    at require (node:internal/modules/helpers:179:18)
    at Object.<anonymous> (/work/modules/mock-chronik-client/index.js:5:18)
    at Module._compile (node:internal/modules/cjs/loader:1469:14)
    at Module.replacementCompile (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:60:13)
    at Module._extensions..js (node:internal/modules/cjs/loader:1548:10)
    at /usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4
    at require.extensions.<computed> (/work/apps/token-server/node_modules/ts-node/src/index.ts:1608:43)
    at Object.<anonymous> (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4)
    at Module.load (node:internal/modules/cjs/loader:1288:32)
    at Function.Module._load (node:internal/modules/cjs/loader:1104:12)
    at Module.require (node:internal/modules/cjs/loader:1311:19)
    at require (node:internal/modules/helpers:179:18)
    at Object.<anonymous> (/work/apps/token-server/src/chronik/clientHandler.test.ts:6:1)
    at Module._compile (node:internal/modules/cjs/loader:1469:14)
    at Module.replacementCompile (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:60:13)
    at Module.m._compile (/work/apps/token-server/node_modules/ts-node/src/index.ts:1618:23)
    at module.exports (/usr/lib/node_modules/nyc/node_modules/default-require-extensions/js.js:7:9)
    at /usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4
    at require.extensions.<computed> (/work/apps/token-server/node_modules/ts-node/src/index.ts:1621:12)
    at Object.<anonymous> (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4)
    at Module.load (node:internal/modules/cjs/loader:1288:32)
    at Function.Module._load (node:internal/modules/cjs/loader:1104:12)
    at Module.require (node:internal/modules/cjs/loader:1311:19)
    at require (node:internal/modules/helpers:179:18)
    at Object.exports.requireOrImport (/work/apps/token-server/node_modules/mocha/lib/nodejs/esm-utils.js:53:16)
    at async Object.exports.loadFilesAsync (/work/apps/token-server/node_modules/mocha/lib/nodejs/esm-utils.js:100:20)
    at async singleRun (/work/apps/token-server/node_modules/mocha/lib/cli/run-helpers.js:125:3)
    at async Object.exports.handler (/work/apps/token-server/node_modules/mocha/lib/cli/run.js:370:5)
----------------|---------|----------|---------|---------|-------------------
File            | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
----------------|---------|----------|---------|---------|-------------------
All files       |      60 |       50 |     100 |      60 |                   
 prepSecrets.ts |      60 |       50 |     100 |      60 | 17-18             
----------------|---------|----------|---------|---------|-------------------

##teamcity[blockOpened name='Code Coverage Summary']
##teamcity[buildStatisticValue key='CodeCoverageAbsBCovered' value='3']
##teamcity[buildStatisticValue key='CodeCoverageAbsBTotal' value='5']
##teamcity[buildStatisticValue key='CodeCoverageAbsRCovered' value='1']
##teamcity[buildStatisticValue key='CodeCoverageAbsRTotal' value='2']
##teamcity[buildStatisticValue key='CodeCoverageAbsMCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsMTotal' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsLCovered' value='3']
##teamcity[buildStatisticValue key='CodeCoverageAbsLTotal' value='5']
##teamcity[blockClosed name='Code Coverage Summary']
mv: cannot stat 'test_results/token-server-junit.xml': No such file or directory
Build token-server-tests failed with exit code 1

Tail of the build log:

  npm audit fix

Run `npm audit` for details.
CI not configured to test build.

> mock-chronik-client@1.12.0 test
> mocha --reporter mocha-junit-reporter --reporter-options mochaFile=test_results/mock-chronik-client-junit.xml --reporter-options testsuitesTitle=Mock Chronik Client Unit Tests --reporter-options rootSuiteTitle=Mock Chronik Client


Error: Cannot find module '/work/modules/mock-chronik-client/node_modules/ecashaddrjs/dist/cashaddrjs.js'. Please verify that the package.json has a valid "main" entry
    at tryPackage (node:internal/modules/cjs/loader:487:19)
    at Module._findPath (node:internal/modules/cjs/loader:771:18)
    at Module._resolveFilename (node:internal/modules/cjs/loader:1211:27)
    at Module._load (node:internal/modules/cjs/loader:1051:27)
    at Module.require (node:internal/modules/cjs/loader:1311:19)
    at require (node:internal/modules/helpers:179:18)
    at Object.<anonymous> (/work/modules/mock-chronik-client/index.js:5:129)
    at Module._compile (node:internal/modules/cjs/loader:1469:14)
    at Module.replacementCompile (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:60:13)
    at Module._extensions..js (node:internal/modules/cjs/loader:1548:10)
    at Object.<anonymous> (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4)
    at Module.load (node:internal/modules/cjs/loader:1288:32)
    at Module._load (node:internal/modules/cjs/loader:1104:12)
    at Module.require (node:internal/modules/cjs/loader:1311:19)
    at require (node:internal/modules/helpers:179:18)
    at Object.<anonymous> (/work/modules/mock-chronik-client/test/index.test.js:7:42)
    at Module._compile (node:internal/modules/cjs/loader:1469:14)
    at Module.replacementCompile (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:60:13)
    at Module._extensions..js (node:internal/modules/cjs/loader:1548:10)
    at Object.<anonymous> (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4)
    at Module.load (node:internal/modules/cjs/loader:1288:32)
    at Module._load (node:internal/modules/cjs/loader:1104:12)
    at cjsLoader (node:internal/modules/esm/translators:346:17)
    at ModuleWrap.<anonymous> (node:internal/modules/esm/translators:286:7)
    at ModuleJob.run (node:internal/modules/esm/module_job:234:25)
    at async ModuleLoader.import (node:internal/modules/esm/loader:473:24)
    at async formattedImport (/work/modules/mock-chronik-client/node_modules/mocha/lib/nodejs/esm-utils.js:9:14)
    at async exports.requireOrImport (/work/modules/mock-chronik-client/node_modules/mocha/lib/nodejs/esm-utils.js:42:28)
    at async exports.loadFilesAsync (/work/modules/mock-chronik-client/node_modules/mocha/lib/nodejs/esm-utils.js:100:20)
    at async singleRun (/work/modules/mock-chronik-client/node_modules/mocha/lib/cli/run-helpers.js:125:3)
    at async exports.handler (/work/modules/mock-chronik-client/node_modules/mocha/lib/cli/run.js:370:5)
----------|---------|----------|---------|---------|-------------------
File      | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
----------|---------|----------|---------|---------|-------------------
All files |    0.67 |        0 |       0 |    0.67 |                   
 index.js |    0.67 |        0 |       0 |    0.67 | 7-489             
----------|---------|----------|---------|---------|-------------------

##teamcity[blockOpened name='Code Coverage Summary']
##teamcity[buildStatisticValue key='CodeCoverageAbsBCovered' value='1']
##teamcity[buildStatisticValue key='CodeCoverageAbsBTotal' value='148']
##teamcity[buildStatisticValue key='CodeCoverageAbsRCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsRTotal' value='47']
##teamcity[buildStatisticValue key='CodeCoverageAbsMCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsMTotal' value='59']
##teamcity[buildStatisticValue key='CodeCoverageAbsLCovered' value='1']
##teamcity[buildStatisticValue key='CodeCoverageAbsLTotal' value='148']
##teamcity[blockClosed name='Code Coverage Summary']
mv: cannot stat 'test_results/mock-chronik-client-junit.xml': No such file or directory
Build mock-chronik-client-tests failed with exit code 1

Tail of the build log:

  requestPath: 'ecashaddrjs'
}
----------------------------|---------|----------|---------|---------|------------------------------
File                        | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s            
----------------------------|---------|----------|---------|---------|------------------------------
All files                   |   10.69 |     9.71 |    4.56 |   13.65 |                              
 ecash-lib                  |       0 |        0 |       0 |       0 |                              
  eslint.config.js          |       0 |        0 |       0 |       0 |                              
 ecash-lib/dist/ffi         |       0 |        0 |       0 |       0 |                              
  ecash_lib_wasm_browser.js |       0 |        0 |       0 |       0 | 3-336                        
  ecash_lib_wasm_nodejs.js  |       0 |        0 |       0 |       0 | 1-264                        
 ecash-lib/src              |   20.28 |    11.43 |    8.91 |   31.35 |                              
  consts.ts                 |       0 |      100 |     100 |       0 | 6-8                          
  ecc.ts                    |   30.76 |    83.33 |   22.22 |   57.14 | 23-31                        
  hash.ts                   |   35.29 |    83.33 |   22.22 |   66.66 | 14,17,20                     
  index.ts                  |       0 |        0 |       0 |       0 |                              
  indexBrowser.ts           |       0 |        0 |       0 |       0 |                              
  indexNodeJs.ts            |       0 |        0 |       0 |       0 |                              
  initBrowser.ts            |       0 |      100 |       0 |       0 | 11-13                        
  initNodeJs.ts             |   53.84 |      100 |   66.66 |   85.71 | 12                           
  op.ts                     |    4.69 |     4.16 |    9.09 |    9.21 | ...-64,69-98,103-124,133-161 
  opcode.ts                 |    50.2 |    83.33 |     100 |     100 | 1                            
  script.ts                 |    7.07 |    13.88 |    3.44 |   13.55 | 11,23-199                    
  sigHashType.ts            |       0 |        0 |       0 |       0 | 19-166                       
  tx.ts                     |       0 |        0 |       0 |       0 | 21-176                       
  txBuilder.ts              |       0 |        0 |       0 |       0 | 74-240                       
  unsignedTx.ts             |       0 |        0 |       0 |       0 | 38-229                       
 ecash-lib/src/ffi          |    7.45 |     1.44 |       0 |    7.64 |                              
  ecash_lib_wasm_browser.js |       0 |        0 |       0 |       0 | 3-336                        
  ecash_lib_wasm_nodejs.js  |   16.32 |        5 |       0 |   16.55 | ...3-134,140-243,250-251,255 
 ecash-lib/src/io           |    8.56 |    26.59 |    8.47 |    16.4 |                              
  bytes.ts                  |    3.77 |     62.5 |    6.66 |     7.4 | 13-64                        
  hex.ts                    |   16.88 |       50 |   11.11 |   35.29 | 33-37,41-45,49-62,66-68      
  int.ts                    |       0 |        0 |       0 |       0 |                              
  str.ts                    |       0 |      100 |       0 |       0 | 5-15                         
  varsize.ts                |    6.12 |    13.15 |      20 |      12 | 14-24,35-47                  
  writer.ts                 |       0 |        0 |       0 |       0 |                              
  writerbytes.ts            |    3.38 |    15.62 |    6.66 |    6.66 | 21-79                        
  writerlength.ts           |   13.33 |    83.33 |    7.69 |      25 | 16-41                        
 ecash-lib/src/test         |       0 |        0 |       0 |       0 |                              
  testRunner.ts             |       0 |        0 |       0 |       0 | 17-207                       
 ecash-lib/src/token        |       0 |        0 |       0 |       0 |                              
  alp.ts                    |       0 |        0 |       0 |       0 | 13-145                       
  common.ts                 |       0 |      100 |     100 |       0 | 9-12                         
  empp.ts                   |       0 |        0 |       0 |       0 | 11-28                        
  slp.ts                    |       0 |        0 |       0 |       0 | 13-211                       
----------------------------|---------|----------|---------|---------|------------------------------

##teamcity[blockOpened name='Code Coverage Summary']
##teamcity[buildStatisticValue key='CodeCoverageAbsBCovered' value='200']
##teamcity[buildStatisticValue key='CodeCoverageAbsBTotal' value='1870']
##teamcity[buildStatisticValue key='CodeCoverageAbsRCovered' value='57']
##teamcity[buildStatisticValue key='CodeCoverageAbsRTotal' value='587']
##teamcity[buildStatisticValue key='CodeCoverageAbsMCovered' value='14']
##teamcity[buildStatisticValue key='CodeCoverageAbsMTotal' value='307']
##teamcity[buildStatisticValue key='CodeCoverageAbsLCovered' value='198']
##teamcity[buildStatisticValue key='CodeCoverageAbsLTotal' value='1450']
##teamcity[blockClosed name='Code Coverage Summary']
mv: cannot stat 'test_results/ecash-lib-junit.xml': No such file or directory
Build ecash-lib-tests failed with exit code 1

stop pointing to non-existent file

Tail of the build log:

added 363 packages, and audited 366 packages in 2s

60 packages are looking for funding
  run `npm fund` for details

2 vulnerabilities (1 moderate, 1 high)

To address all issues, run:
  npm audit fix

Run `npm audit` for details.

> ecash-lib@0.2.1 build
> tsc && tsc -p ./tsconfig.build.json && cp -r ./src/ffi ./dist

Installing ecash-agora dependencies...
/work/modules/ecash-agora /work/modules/ecash-lib /work/modules/ecash-lib-wasm /work/modules/ecash-script /work/modules/chronik-client /work/modules/mock-chronik-client /work/modules/ecashaddrjs /work/abc-ci-builds/cashtab-tests

added 364 packages, and audited 367 packages in 1s

60 packages are looking for funding
  run `npm fund` for details

2 vulnerabilities (1 moderate, 1 high)

To address all issues, run:
  npm audit fix

Run `npm audit` for details.

> ecash-agora@0.1.1 build
> tsc && tsc -p ./tsconfig.build.json

/work/cashtab /work/modules/ecash-agora /work/modules/ecash-lib /work/modules/ecash-lib-wasm /work/modules/ecash-script /work/modules/chronik-client /work/modules/mock-chronik-client /work/modules/ecashaddrjs /work/abc-ci-builds/cashtab-tests
npm warn deprecated @humanwhocodes/config-array@0.11.14: Use @eslint/config-array instead
npm warn deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm warn deprecated eslint@8.56.0: This version is no longer supported. Please see https://eslint.org/version-support for other options.

added 1483 packages, and audited 3329 packages in 23s

323 packages are looking for funding
  run `npm fund` for details

4 vulnerabilities (2 moderate, 2 high)

To address all issues, run:
  npm audit fix

Run `npm audit` for details.

> cashtab@2.54.1 build
> node scripts/build.js

Creating an optimized production build...
Failed to compile.

Module not found: Error: Can't resolve 'ecashaddrjs' in '/work/cashtab/src/validation'


Build cashtab-tests failed with exit code 1

Tail of the build log:

98 packages are looking for funding
  run `npm fund` for details

13 vulnerabilities (3 low, 5 moderate, 5 high)

To address issues that do not require attention, run:
  npm audit fix

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.
CI not configured to test build.

> alias-server@1.0.0 test
> mocha --reporter mocha-junit-reporter --reporter-options mochaFile=test_results/alias-server-junit.xml --reporter-options testsuitesTitle=Alias Server Unit Tests --reporter-options rootSuiteTitle=Alias Server


Error: Cannot find module '/work/apps/alias-server/node_modules/ecashaddrjs/dist/cashaddrjs.js'. Please verify that the package.json has a valid "main" entry
    at tryPackage (node:internal/modules/cjs/loader:487:19)
    at Module._findPath (node:internal/modules/cjs/loader:771:18)
    at Module._resolveFilename (node:internal/modules/cjs/loader:1211:27)
    at Module._load (node:internal/modules/cjs/loader:1051:27)
    at Module.require (node:internal/modules/cjs/loader:1311:19)
    at require (node:internal/modules/helpers:179:18)
    at Object.<anonymous> (/work/apps/alias-server/test/alias.test.js:7:18)
    at Module._compile (node:internal/modules/cjs/loader:1469:14)
    at Module.replacementCompile (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:60:13)
    at Module._extensions..js (node:internal/modules/cjs/loader:1548:10)
    at Object.<anonymous> (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4)
    at Module.load (node:internal/modules/cjs/loader:1288:32)
    at Module._load (node:internal/modules/cjs/loader:1104:12)
    at cjsLoader (node:internal/modules/esm/translators:346:17)
    at ModuleWrap.<anonymous> (node:internal/modules/esm/translators:286:7)
    at ModuleJob.run (node:internal/modules/esm/module_job:234:25)
    at async ModuleLoader.import (node:internal/modules/esm/loader:473:24)
    at async formattedImport (/work/apps/alias-server/node_modules/mocha/lib/nodejs/esm-utils.js:9:14)
    at async exports.requireOrImport (/work/apps/alias-server/node_modules/mocha/lib/nodejs/esm-utils.js:42:28)
    at async exports.loadFilesAsync (/work/apps/alias-server/node_modules/mocha/lib/nodejs/esm-utils.js:100:20)
    at async singleRun (/work/apps/alias-server/node_modules/mocha/lib/cli/run-helpers.js:125:3)
    at async exports.handler (/work/apps/alias-server/node_modules/mocha/lib/cli/run.js:370:5)
----------|---------|----------|---------|---------|-------------------
File      | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
----------|---------|----------|---------|---------|-------------------
All files |       0 |        0 |       0 |       0 |                   
----------|---------|----------|---------|---------|-------------------

##teamcity[blockOpened name='Code Coverage Summary']
##teamcity[buildStatisticValue key='CodeCoverageAbsBCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsBTotal' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsRCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsRTotal' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsMCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsMTotal' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsLCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsLTotal' value='0']
##teamcity[blockClosed name='Code Coverage Summary']
mv: cannot stat 'test_results/alias-server-junit.xml': No such file or directory
Build alias-server-tests failed with exit code 1

actually use the right name

Tail of the build log:

Run `npm audit` for details.
CI not configured to test build.

> ecash-herald@2.0.0 test
> mocha --reporter mocha-junit-reporter --reporter-options mochaFile=test_results/ecash-herald-junit.xml --reporter-options testsuitesTitle=Ecash Herald Unit Tests --reporter-options rootSuiteTitle=Ecash Herald


Error: Cannot find module '/work/modules/mock-chronik-client/node_modules/ecashaddrjs/dist/cashaddrjs.js'. Please verify that the package.json has a valid "main" entry
    at tryPackage (node:internal/modules/cjs/loader:487:19)
    at Function.Module._findPath (node:internal/modules/cjs/loader:771:18)
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:1211:27)
    at Function.Module._resolveFilename.sharedData.moduleResolveFilenameHook.installedValue [as _resolveFilename] (/work/apps/ecash-herald/node_modules/@cspotcode/source-map-support/source-map-support.js:811:30)
    at Function.Module._load (node:internal/modules/cjs/loader:1051:27)
    at Module.require (node:internal/modules/cjs/loader:1311:19)
    at require (node:internal/modules/helpers:179:18)
    at Object.<anonymous> (/work/modules/mock-chronik-client/index.js:5:18)
    at Module._compile (node:internal/modules/cjs/loader:1469:14)
    at Module.replacementCompile (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:60:13)
    at Module._extensions..js (node:internal/modules/cjs/loader:1548:10)
    at /usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4
    at require.extensions.<computed> (/work/apps/ecash-herald/node_modules/ts-node/src/index.ts:1608:43)
    at Object.<anonymous> (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4)
    at Module.load (node:internal/modules/cjs/loader:1288:32)
    at Function.Module._load (node:internal/modules/cjs/loader:1104:12)
    at Module.require (node:internal/modules/cjs/loader:1311:19)
    at require (node:internal/modules/helpers:179:18)
    at Object.<anonymous> (/work/apps/ecash-herald/test/chronik.test.ts:7:1)
    at Module._compile (node:internal/modules/cjs/loader:1469:14)
    at Module.replacementCompile (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:60:13)
    at Module.m._compile (/work/apps/ecash-herald/node_modules/ts-node/src/index.ts:1618:23)
    at module.exports (/usr/lib/node_modules/nyc/node_modules/default-require-extensions/js.js:7:9)
    at /usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4
    at require.extensions.<computed> (/work/apps/ecash-herald/node_modules/ts-node/src/index.ts:1621:12)
    at Object.<anonymous> (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4)
    at Module.load (node:internal/modules/cjs/loader:1288:32)
    at Function.Module._load (node:internal/modules/cjs/loader:1104:12)
    at Module.require (node:internal/modules/cjs/loader:1311:19)
    at require (node:internal/modules/helpers:179:18)
    at Object.exports.requireOrImport (/work/apps/ecash-herald/node_modules/mocha/lib/nodejs/esm-utils.js:53:16)
    at async Object.exports.loadFilesAsync (/work/apps/ecash-herald/node_modules/mocha/lib/nodejs/esm-utils.js:100:20)
    at async singleRun (/work/apps/ecash-herald/node_modules/mocha/lib/cli/run-helpers.js:125:3)
    at async Object.exports.handler (/work/apps/ecash-herald/node_modules/mocha/lib/cli/run.js:370:5)
----------|---------|----------|---------|---------|-------------------
File      | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
----------|---------|----------|---------|---------|-------------------
All files |       0 |        0 |       0 |       0 |                   
----------|---------|----------|---------|---------|-------------------

##teamcity[blockOpened name='Code Coverage Summary']
##teamcity[buildStatisticValue key='CodeCoverageAbsBCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsBTotal' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsRCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsRTotal' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsMCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsMTotal' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsLCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsLTotal' value='0']
##teamcity[blockClosed name='Code Coverage Summary']
mv: cannot stat 'test_results/ecash-herald-junit.xml': No such file or directory
Build ecash-herald-tests failed with exit code 1

Tail of the build log:

secrets.ts exists, proceeding to build...

> token-server@0.0.0 test
> mocha --reporter mocha-junit-reporter --reporter-options mochaFile=test_results/token-server-junit.xml --reporter-options testsuitesTitle=Token Server Unit Tests --reporter-options rootSuiteTitle=Token Server


Error: Cannot find module '/work/modules/mock-chronik-client/node_modules/ecashaddrjs/dist/cashaddrjs.js'. Please verify that the package.json has a valid "main" entry
    at tryPackage (node:internal/modules/cjs/loader:487:19)
    at Function.Module._findPath (node:internal/modules/cjs/loader:771:18)
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:1211:27)
    at Function.Module._resolveFilename.sharedData.moduleResolveFilenameHook.installedValue [as _resolveFilename] (/work/apps/token-server/node_modules/@cspotcode/source-map-support/source-map-support.js:811:30)
    at Function.Module._load (node:internal/modules/cjs/loader:1051:27)
    at Module.require (node:internal/modules/cjs/loader:1311:19)
    at require (node:internal/modules/helpers:179:18)
    at Object.<anonymous> (/work/modules/mock-chronik-client/index.js:5:18)
    at Module._compile (node:internal/modules/cjs/loader:1469:14)
    at Module.replacementCompile (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:60:13)
    at Module._extensions..js (node:internal/modules/cjs/loader:1548:10)
    at /usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4
    at require.extensions.<computed> (/work/apps/token-server/node_modules/ts-node/src/index.ts:1608:43)
    at Object.<anonymous> (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4)
    at Module.load (node:internal/modules/cjs/loader:1288:32)
    at Function.Module._load (node:internal/modules/cjs/loader:1104:12)
    at Module.require (node:internal/modules/cjs/loader:1311:19)
    at require (node:internal/modules/helpers:179:18)
    at Object.<anonymous> (/work/apps/token-server/src/chronik/clientHandler.test.ts:6:1)
    at Module._compile (node:internal/modules/cjs/loader:1469:14)
    at Module.replacementCompile (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:60:13)
    at Module.m._compile (/work/apps/token-server/node_modules/ts-node/src/index.ts:1618:23)
    at module.exports (/usr/lib/node_modules/nyc/node_modules/default-require-extensions/js.js:7:9)
    at /usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4
    at require.extensions.<computed> (/work/apps/token-server/node_modules/ts-node/src/index.ts:1621:12)
    at Object.<anonymous> (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4)
    at Module.load (node:internal/modules/cjs/loader:1288:32)
    at Function.Module._load (node:internal/modules/cjs/loader:1104:12)
    at Module.require (node:internal/modules/cjs/loader:1311:19)
    at require (node:internal/modules/helpers:179:18)
    at Object.exports.requireOrImport (/work/apps/token-server/node_modules/mocha/lib/nodejs/esm-utils.js:53:16)
    at async Object.exports.loadFilesAsync (/work/apps/token-server/node_modules/mocha/lib/nodejs/esm-utils.js:100:20)
    at async singleRun (/work/apps/token-server/node_modules/mocha/lib/cli/run-helpers.js:125:3)
    at async Object.exports.handler (/work/apps/token-server/node_modules/mocha/lib/cli/run.js:370:5)
----------------|---------|----------|---------|---------|-------------------
File            | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
----------------|---------|----------|---------|---------|-------------------
All files       |      60 |       50 |     100 |      60 |                   
 prepSecrets.ts |      60 |       50 |     100 |      60 | 17-18             
----------------|---------|----------|---------|---------|-------------------

##teamcity[blockOpened name='Code Coverage Summary']
##teamcity[buildStatisticValue key='CodeCoverageAbsBCovered' value='3']
##teamcity[buildStatisticValue key='CodeCoverageAbsBTotal' value='5']
##teamcity[buildStatisticValue key='CodeCoverageAbsRCovered' value='1']
##teamcity[buildStatisticValue key='CodeCoverageAbsRTotal' value='2']
##teamcity[buildStatisticValue key='CodeCoverageAbsMCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsMTotal' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsLCovered' value='3']
##teamcity[buildStatisticValue key='CodeCoverageAbsLTotal' value='5']
##teamcity[blockClosed name='Code Coverage Summary']
mv: cannot stat 'test_results/token-server-junit.xml': No such file or directory
Build token-server-tests failed with exit code 1

Tail of the build log:

  npm audit fix

Run `npm audit` for details.
CI not configured to test build.

> mock-chronik-client@1.12.0 test
> mocha --reporter mocha-junit-reporter --reporter-options mochaFile=test_results/mock-chronik-client-junit.xml --reporter-options testsuitesTitle=Mock Chronik Client Unit Tests --reporter-options rootSuiteTitle=Mock Chronik Client


Error: Cannot find module '/work/modules/mock-chronik-client/node_modules/ecashaddrjs/dist/cashaddrjs.js'. Please verify that the package.json has a valid "main" entry
    at tryPackage (node:internal/modules/cjs/loader:487:19)
    at Module._findPath (node:internal/modules/cjs/loader:771:18)
    at Module._resolveFilename (node:internal/modules/cjs/loader:1211:27)
    at Module._load (node:internal/modules/cjs/loader:1051:27)
    at Module.require (node:internal/modules/cjs/loader:1311:19)
    at require (node:internal/modules/helpers:179:18)
    at Object.<anonymous> (/work/modules/mock-chronik-client/index.js:5:129)
    at Module._compile (node:internal/modules/cjs/loader:1469:14)
    at Module.replacementCompile (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:60:13)
    at Module._extensions..js (node:internal/modules/cjs/loader:1548:10)
    at Object.<anonymous> (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4)
    at Module.load (node:internal/modules/cjs/loader:1288:32)
    at Module._load (node:internal/modules/cjs/loader:1104:12)
    at Module.require (node:internal/modules/cjs/loader:1311:19)
    at require (node:internal/modules/helpers:179:18)
    at Object.<anonymous> (/work/modules/mock-chronik-client/test/index.test.js:7:42)
    at Module._compile (node:internal/modules/cjs/loader:1469:14)
    at Module.replacementCompile (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:60:13)
    at Module._extensions..js (node:internal/modules/cjs/loader:1548:10)
    at Object.<anonymous> (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4)
    at Module.load (node:internal/modules/cjs/loader:1288:32)
    at Module._load (node:internal/modules/cjs/loader:1104:12)
    at cjsLoader (node:internal/modules/esm/translators:346:17)
    at ModuleWrap.<anonymous> (node:internal/modules/esm/translators:286:7)
    at ModuleJob.run (node:internal/modules/esm/module_job:234:25)
    at async ModuleLoader.import (node:internal/modules/esm/loader:473:24)
    at async formattedImport (/work/modules/mock-chronik-client/node_modules/mocha/lib/nodejs/esm-utils.js:9:14)
    at async exports.requireOrImport (/work/modules/mock-chronik-client/node_modules/mocha/lib/nodejs/esm-utils.js:42:28)
    at async exports.loadFilesAsync (/work/modules/mock-chronik-client/node_modules/mocha/lib/nodejs/esm-utils.js:100:20)
    at async singleRun (/work/modules/mock-chronik-client/node_modules/mocha/lib/cli/run-helpers.js:125:3)
    at async exports.handler (/work/modules/mock-chronik-client/node_modules/mocha/lib/cli/run.js:370:5)
----------|---------|----------|---------|---------|-------------------
File      | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
----------|---------|----------|---------|---------|-------------------
All files |    0.67 |        0 |       0 |    0.67 |                   
 index.js |    0.67 |        0 |       0 |    0.67 | 7-489             
----------|---------|----------|---------|---------|-------------------

##teamcity[blockOpened name='Code Coverage Summary']
##teamcity[buildStatisticValue key='CodeCoverageAbsBCovered' value='1']
##teamcity[buildStatisticValue key='CodeCoverageAbsBTotal' value='148']
##teamcity[buildStatisticValue key='CodeCoverageAbsRCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsRTotal' value='47']
##teamcity[buildStatisticValue key='CodeCoverageAbsMCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsMTotal' value='59']
##teamcity[buildStatisticValue key='CodeCoverageAbsLCovered' value='1']
##teamcity[buildStatisticValue key='CodeCoverageAbsLTotal' value='148']
##teamcity[blockClosed name='Code Coverage Summary']
mv: cannot stat 'test_results/mock-chronik-client-junit.xml': No such file or directory
Build mock-chronik-client-tests failed with exit code 1

Tail of the build log:

    at S (/work/modules/ecash-agora/node_modules/tsx/dist/cjs/index.cjs:1:1292)
    at Object.<anonymous> (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4)
    at Module.load (node:internal/modules/cjs/loader:1288:32)
    at Module._load (node:internal/modules/cjs/loader:1104:12)
    at Module.require (node:internal/modules/cjs/loader:1311:19)
    at require (node:internal/modules/helpers:179:18)
    at Object.<anonymous> (/work/modules/ecash-lib/src/indexNodeJs.ts:5:1)
    at Module._compile (node:internal/modules/cjs/loader:1469:14)
    at Module.replacementCompile (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:60:13)
    at S (/work/modules/ecash-agora/node_modules/tsx/dist/cjs/index.cjs:1:1292)
    at Object.<anonymous> (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4)
    at Module.load (node:internal/modules/cjs/loader:1288:32)
    at Module._load (node:internal/modules/cjs/loader:1104:12)
    at Module.require (node:internal/modules/cjs/loader:1311:19)
    at require (node:internal/modules/helpers:179:18)
    at chaiAsPromised (/work/modules/ecash-agora/tests/oneshot.test.ts:25:8)
    at Object.<anonymous> (/work/modules/ecash-agora/tests/oneshot.test.ts:706:2)
    at Module._compile (node:internal/modules/cjs/loader:1469:14)
    at Module.replacementCompile (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:60:13)
    at S (/work/modules/ecash-agora/node_modules/tsx/dist/cjs/index.cjs:1:1292)
    at Object.<anonymous> (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4)
    at Module.load (node:internal/modules/cjs/loader:1288:32)
    at Module._load (node:internal/modules/cjs/loader:1104:12)
    at cjsLoader (node:internal/modules/esm/translators:346:17)
    at ModuleWrap.<anonymous> (node:internal/modules/esm/translators:286:7)
    at ModuleJob.run (node:internal/modules/esm/module_job:234:25)
    at async ModuleLoader.import (node:internal/modules/esm/loader:473:24)
    at async formattedImport (/work/modules/ecash-agora/node_modules/mocha/lib/nodejs/esm-utils.js:9:14)
    at async exports.requireOrImport (/work/modules/ecash-agora/node_modules/mocha/lib/nodejs/esm-utils.js:42:28)
    at async exports.loadFilesAsync (/work/modules/ecash-agora/node_modules/mocha/lib/nodejs/esm-utils.js:100:20)
    at async singleRun (/work/modules/ecash-agora/node_modules/mocha/lib/cli/run-helpers.js:125:3)
    at async exports.handler (/work/modules/ecash-agora/node_modules/mocha/lib/cli/run.js:370:5) {
  code: 'MODULE_NOT_FOUND',
  path: '/work/modules/ecash-lib/node_modules/ecashaddrjs/package.json',
  requestPath: 'ecashaddrjs'
}
------------|---------|----------|---------|---------|-------------------
File        | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
------------|---------|----------|---------|---------|-------------------
All files   |       0 |        0 |       0 |       0 |                   
 ad.ts      |       0 |        0 |       0 |       0 | 33-146            
 agora.ts   |       0 |        0 |       0 |       0 | 54-914            
 consts.ts  |       0 |      100 |     100 |       0 | 8-11              
 index.ts   |       0 |        0 |       0 |       0 |                   
 oneshot.ts |       0 |        0 |       0 |       0 | 65-286            
 partial.ts |       0 |        0 |       0 |       0 | 204-1406          
------------|---------|----------|---------|---------|-------------------

##teamcity[blockOpened name='Code Coverage Summary']
##teamcity[buildStatisticValue key='CodeCoverageAbsBCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsBTotal' value='514']
##teamcity[buildStatisticValue key='CodeCoverageAbsRCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsRTotal' value='207']
##teamcity[buildStatisticValue key='CodeCoverageAbsMCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsMTotal' value='77']
##teamcity[buildStatisticValue key='CodeCoverageAbsLCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsLTotal' value='514']
##teamcity[blockClosed name='Code Coverage Summary']
mv: cannot stat 'test_results/ecash-agora-integration-tests-junit.xml': No such file or directory
Build ecash-agora-integration-tests failed with exit code 1

Tail of the build log:

    at async exports.handler (/work/modules/ecash-lib/node_modules/mocha/lib/cli/run.js:370:5) {
  code: 'MODULE_NOT_FOUND',
  path: '/work/modules/ecash-lib/node_modules/ecashaddrjs/package.json',
  requestPath: 'ecashaddrjs'
}
----------------------------|---------|----------|---------|---------|------------------------------
File                        | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s            
----------------------------|---------|----------|---------|---------|------------------------------
All files                   |   16.99 |    13.76 |     5.5 |   17.25 |                              
 ecash-lib                  |       0 |        0 |       0 |       0 |                              
  eslint.config.js          |       0 |        0 |       0 |       0 |                              
 ecash-lib/src              |   30.73 |    15.57 |    8.21 |   31.12 |                              
  consts.ts                 |       0 |      100 |     100 |       0 | 6-8                          
  ecc.ts                    |   42.85 |    83.33 |      20 |   42.85 | 23-31,36                     
  hash.ts                   |   55.55 |    83.33 |      20 |   55.55 | 14,17,20,24                  
  index.ts                  |       0 |        0 |       0 |       0 |                              
  indexBrowser.ts           |       0 |        0 |       0 |       0 |                              
  indexNodeJs.ts            |       0 |        0 |       0 |       0 |                              
  initBrowser.ts            |       0 |      100 |       0 |       0 | 11-13                        
  initNodeJs.ts             |   71.42 |      100 |      50 |   83.33 | 11                           
  op.ts                     |    9.33 |     7.93 |   16.66 |    9.33 | ...-64,69-98,103-124,133-161 
  opcode.ts                 |     100 |    83.33 |     100 |     100 | 1                            
  script.ts                 |   14.03 |     23.8 |    6.66 |   14.54 | 23-199                       
  sigHashType.ts            |       0 |        0 |       0 |       0 | 19-166                       
  tx.ts                     |       0 |        0 |       0 |       0 | 21-176                       
  txBuilder.ts              |       0 |        0 |       0 |       0 | 74-240                       
  unsignedTx.ts             |       0 |        0 |       0 |       0 | 38-229                       
 ecash-lib/src/ffi          |    7.45 |     1.44 |       0 |    7.64 |                              
  ecash_lib_wasm_browser.js |       0 |        0 |       0 |       0 | 3-336                        
  ecash_lib_wasm_nodejs.js  |   16.32 |        5 |       0 |   16.55 | ...3-134,140-243,250-251,255 
 ecash-lib/src/io           |   16.54 |    40.32 |   15.15 |    16.4 |                              
  bytes.ts                  |     7.4 |    71.42 |    12.5 |     7.4 | 13-64                        
  hex.ts                    |   33.33 |     62.5 |      20 |   35.29 | 33-37,41-45,49-62,66-68      
  int.ts                    |       0 |        0 |       0 |       0 |                              
  str.ts                    |       0 |      100 |       0 |       0 | 5-15                         
  varsize.ts                |      12 |    22.72 |   33.33 |      12 | 14-24,35-47                  
  writer.ts                 |       0 |        0 |       0 |       0 |                              
  writerbytes.ts            |    6.66 |    26.31 |    12.5 |    6.66 | 21-79                        
  writerlength.ts           |      25 |    83.33 |   14.28 |      25 | 16-41                        
 ecash-lib/src/test         |       0 |        0 |       0 |       0 |                              
  testRunner.ts             |       0 |        0 |       0 |       0 | 17-207                       
 ecash-lib/src/token        |       0 |        0 |       0 |       0 |                              
  alp.ts                    |       0 |        0 |       0 |       0 | 13-145                       
  common.ts                 |       0 |      100 |     100 |       0 | 9-12                         
  empp.ts                   |       0 |        0 |       0 |       0 | 11-28                        
  slp.ts                    |       0 |        0 |       0 |       0 | 13-211                       
----------------------------|---------|----------|---------|---------|------------------------------

##teamcity[blockOpened name='Code Coverage Summary']
##teamcity[buildStatisticValue key='CodeCoverageAbsBCovered' value='196']
##teamcity[buildStatisticValue key='CodeCoverageAbsBTotal' value='1153']
##teamcity[buildStatisticValue key='CodeCoverageAbsRCovered' value='57']
##teamcity[buildStatisticValue key='CodeCoverageAbsRTotal' value='414']
##teamcity[buildStatisticValue key='CodeCoverageAbsMCovered' value='11']
##teamcity[buildStatisticValue key='CodeCoverageAbsMTotal' value='200']
##teamcity[buildStatisticValue key='CodeCoverageAbsLCovered' value='195']
##teamcity[buildStatisticValue key='CodeCoverageAbsLTotal' value='1130']
##teamcity[blockClosed name='Code Coverage Summary']
mv: cannot stat 'test_results/ecash-lib-integration-tests-junit.xml': No such file or directory
Build ecash-lib-integration-tests failed with exit code 1

Tail of the build log:

    at Module.replacementCompile (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:60:13)
    at Module.m._compile (/work/modules/chronik-client/node_modules/ts-node/src/index.ts:1618:23)
    at module.exports (/usr/lib/node_modules/nyc/node_modules/default-require-extensions/js.js:7:9)
    at /usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4
    at require.extensions.<computed> (/work/modules/chronik-client/node_modules/ts-node/src/index.ts:1621:12)
    at Object.<anonymous> (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4)
    at Module.load (node:internal/modules/cjs/loader:1288:32)
    at Function.Module._load (node:internal/modules/cjs/loader:1104:12)
    at Module.require (node:internal/modules/cjs/loader:1311:19)
    at require (node:internal/modules/helpers:179:18)
    at Object.<anonymous> (/work/modules/chronik-client/index.ts:5:1932)
    at Module._compile (node:internal/modules/cjs/loader:1469:14)
    at Module.replacementCompile (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:60:13)
    at Module.m._compile (/work/modules/chronik-client/node_modules/ts-node/src/index.ts:1618:23)
    at module.exports (/usr/lib/node_modules/nyc/node_modules/default-require-extensions/js.js:7:9)
    at /usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4
    at require.extensions.<computed> (/work/modules/chronik-client/node_modules/ts-node/src/index.ts:1621:12)
    at Object.<anonymous> (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4)
    at Module.load (node:internal/modules/cjs/loader:1288:32)
    at Function.Module._load (node:internal/modules/cjs/loader:1104:12)
    at Module.require (node:internal/modules/cjs/loader:1311:19)
    at require (node:internal/modules/helpers:179:18)
    at Object.<anonymous> (/work/modules/chronik-client/test/integration/block_and_blocks.ts:10:1)
    at Module._compile (node:internal/modules/cjs/loader:1469:14)
    at Module.replacementCompile (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:60:13)
    at Module.m._compile (/work/modules/chronik-client/node_modules/ts-node/src/index.ts:1618:23)
    at module.exports (/usr/lib/node_modules/nyc/node_modules/default-require-extensions/js.js:7:9)
    at /usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4
    at require.extensions.<computed> (/work/modules/chronik-client/node_modules/ts-node/src/index.ts:1621:12)
    at Object.<anonymous> (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4)
    at Module.load (node:internal/modules/cjs/loader:1288:32)
    at Function.Module._load (node:internal/modules/cjs/loader:1104:12)
    at Module.require (node:internal/modules/cjs/loader:1311:19)
    at require (node:internal/modules/helpers:179:18)
    at Object.exports.requireOrImport (/work/modules/chronik-client/node_modules/mocha/lib/nodejs/esm-utils.js:60:20)
    at async Object.exports.loadFilesAsync (/work/modules/chronik-client/node_modules/mocha/lib/nodejs/esm-utils.js:103:20)
    at async singleRun (/work/modules/chronik-client/node_modules/mocha/lib/cli/run-helpers.js:125:3)
    at async Object.exports.handler (/work/modules/chronik-client/node_modules/mocha/lib/cli/run.js:374:5)
--------------------|---------|----------|---------|---------|-------------------
File                | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
--------------------|---------|----------|---------|---------|-------------------
All files           |    0.55 |        0 |       0 |    0.55 |                   
 chronik-client     |     100 |      100 |     100 |     100 |                   
  index.ts          |     100 |      100 |     100 |     100 |                   
 chronik-client/src |    0.27 |        0 |       0 |    0.27 |                   
  ChronikClient.ts  |    0.27 |        0 |       0 |    0.27 | 6-1908            
--------------------|---------|----------|---------|---------|-------------------

##teamcity[blockOpened name='Code Coverage Summary']
##teamcity[buildStatisticValue key='CodeCoverageAbsBCovered' value='2']
##teamcity[buildStatisticValue key='CodeCoverageAbsBTotal' value='361']
##teamcity[buildStatisticValue key='CodeCoverageAbsRCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsRTotal' value='154']
##teamcity[buildStatisticValue key='CodeCoverageAbsMCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsMTotal' value='98']
##teamcity[buildStatisticValue key='CodeCoverageAbsLCovered' value='2']
##teamcity[buildStatisticValue key='CodeCoverageAbsLTotal' value='361']
##teamcity[blockClosed name='Code Coverage Summary']
mv: cannot stat 'test_results/chronik-client-integration-tests-junit.xml': No such file or directory
Build chronik-client-integration-tests failed with exit code 1

Tail of the build log:

  requestPath: 'ecashaddrjs'
}
----------------------------|---------|----------|---------|---------|------------------------------
File                        | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s            
----------------------------|---------|----------|---------|---------|------------------------------
All files                   |   10.69 |     9.71 |    4.56 |   13.65 |                              
 ecash-lib                  |       0 |        0 |       0 |       0 |                              
  eslint.config.js          |       0 |        0 |       0 |       0 |                              
 ecash-lib/dist/ffi         |       0 |        0 |       0 |       0 |                              
  ecash_lib_wasm_browser.js |       0 |        0 |       0 |       0 | 3-336                        
  ecash_lib_wasm_nodejs.js  |       0 |        0 |       0 |       0 | 1-264                        
 ecash-lib/src              |   20.28 |    11.43 |    8.91 |   31.35 |                              
  consts.ts                 |       0 |      100 |     100 |       0 | 6-8                          
  ecc.ts                    |   30.76 |    83.33 |   22.22 |   57.14 | 23-31                        
  hash.ts                   |   35.29 |    83.33 |   22.22 |   66.66 | 14,17,20                     
  index.ts                  |       0 |        0 |       0 |       0 |                              
  indexBrowser.ts           |       0 |        0 |       0 |       0 |                              
  indexNodeJs.ts            |       0 |        0 |       0 |       0 |                              
  initBrowser.ts            |       0 |      100 |       0 |       0 | 11-13                        
  initNodeJs.ts             |   53.84 |      100 |   66.66 |   85.71 | 12                           
  op.ts                     |    4.69 |     4.16 |    9.09 |    9.21 | ...-64,69-98,103-124,133-161 
  opcode.ts                 |    50.2 |    83.33 |     100 |     100 | 1                            
  script.ts                 |    7.07 |    13.88 |    3.44 |   13.55 | 11,23-199                    
  sigHashType.ts            |       0 |        0 |       0 |       0 | 19-166                       
  tx.ts                     |       0 |        0 |       0 |       0 | 21-176                       
  txBuilder.ts              |       0 |        0 |       0 |       0 | 74-240                       
  unsignedTx.ts             |       0 |        0 |       0 |       0 | 38-229                       
 ecash-lib/src/ffi          |    7.45 |     1.44 |       0 |    7.64 |                              
  ecash_lib_wasm_browser.js |       0 |        0 |       0 |       0 | 3-336                        
  ecash_lib_wasm_nodejs.js  |   16.32 |        5 |       0 |   16.55 | ...3-134,140-243,250-251,255 
 ecash-lib/src/io           |    8.56 |    26.59 |    8.47 |    16.4 |                              
  bytes.ts                  |    3.77 |     62.5 |    6.66 |     7.4 | 13-64                        
  hex.ts                    |   16.88 |       50 |   11.11 |   35.29 | 33-37,41-45,49-62,66-68      
  int.ts                    |       0 |        0 |       0 |       0 |                              
  str.ts                    |       0 |      100 |       0 |       0 | 5-15                         
  varsize.ts                |    6.12 |    13.15 |      20 |      12 | 14-24,35-47                  
  writer.ts                 |       0 |        0 |       0 |       0 |                              
  writerbytes.ts            |    3.38 |    15.62 |    6.66 |    6.66 | 21-79                        
  writerlength.ts           |   13.33 |    83.33 |    7.69 |      25 | 16-41                        
 ecash-lib/src/test         |       0 |        0 |       0 |       0 |                              
  testRunner.ts             |       0 |        0 |       0 |       0 | 17-207                       
 ecash-lib/src/token        |       0 |        0 |       0 |       0 |                              
  alp.ts                    |       0 |        0 |       0 |       0 | 13-145                       
  common.ts                 |       0 |      100 |     100 |       0 | 9-12                         
  empp.ts                   |       0 |        0 |       0 |       0 | 11-28                        
  slp.ts                    |       0 |        0 |       0 |       0 | 13-211                       
----------------------------|---------|----------|---------|---------|------------------------------

##teamcity[blockOpened name='Code Coverage Summary']
##teamcity[buildStatisticValue key='CodeCoverageAbsBCovered' value='200']
##teamcity[buildStatisticValue key='CodeCoverageAbsBTotal' value='1870']
##teamcity[buildStatisticValue key='CodeCoverageAbsRCovered' value='57']
##teamcity[buildStatisticValue key='CodeCoverageAbsRTotal' value='587']
##teamcity[buildStatisticValue key='CodeCoverageAbsMCovered' value='14']
##teamcity[buildStatisticValue key='CodeCoverageAbsMTotal' value='307']
##teamcity[buildStatisticValue key='CodeCoverageAbsLCovered' value='198']
##teamcity[buildStatisticValue key='CodeCoverageAbsLTotal' value='1450']
##teamcity[blockClosed name='Code Coverage Summary']
mv: cannot stat 'test_results/ecash-lib-junit.xml': No such file or directory
Build ecash-lib-tests failed with exit code 1

Failed tests logs:

====== alias-server alias.js: "before all" hook for "parseAliasTx returns tx info for an alias tx with an overpaid fee".alias-server alias.js "before all" hook for "parseAliasTx returns tx info for an alias tx with an overpaid fee" ======
Error: Instance failed to start because a library is missing or cannot be opened: "libcrypto.so.1.1"
    at MongoInstance.checkErrorInLine (node_modules/mongodb-memory-server-core/lib/util/MongoInstance.js:382:62)
    at MongoInstance.stderrHandler (node_modules/mongodb-memory-server-core/lib/util/MongoInstance.js:304:14)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:559:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
    at Readable.push (node:internal/streams/readable:390:5)
    at Pipe.onStreamRead (node:internal/stream_base_commons:191:23)
====== alias-server alias.js: "after all" hook for "parseTxForPendingAliases adds multiple pending alias registrations to the database if an incoming tx containing multiple alias registrations comes in".alias-server alias.js "after all" hook for "parseTxForPendingAliases adds multiple pending alias registrations to the database if an incoming tx containing multiple alias registrations comes in" ======
TypeError: Cannot read properties of undefined (reading 'close')
    at Context.<anonymous> (test/alias.test.js:44:31)
    at process.processImmediate (node:internal/timers:483:21)
====== alias-server app.js: "before all" hook for "/prices returns aliasConstants.prices".alias-server app.js "before all" hook for "/prices returns aliasConstants.prices" ======
Error: Instance failed to start because a library is missing or cannot be opened: "libcrypto.so.1.1"
    at MongoInstance.checkErrorInLine (node_modules/mongodb-memory-server-core/lib/util/MongoInstance.js:382:62)
    at MongoInstance.stderrHandler (node_modules/mongodb-memory-server-core/lib/util/MongoInstance.js:304:14)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:559:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
    at Readable.push (node:internal/streams/readable:390:5)
    at Pipe.onStreamRead (node:internal/stream_base_commons:191:23)
====== alias-server app.js: "after all" hook for "/address/:address returns an error on database error".alias-server app.js "after all" hook for "/address/:address returns an error on database error" ======
TypeError: Cannot read properties of undefined (reading 'close')
    at Context.<anonymous> (test/app.test.js:29:31)
    at process.processImmediate (node:internal/timers:483:21)
====== alias-server chronikWsHandler.js: "before all" hook for "initializeWebsocket returns expected websocket object for a p2pkh address".alias-server chronikWsHandler.js "before all" hook for "initializeWebsocket returns expected websocket object for a p2pkh address" ======
Error: Instance failed to start because a library is missing or cannot be opened: "libcrypto.so.1.1"
    at MongoInstance.checkErrorInLine (node_modules/mongodb-memory-server-core/lib/util/MongoInstance.js:382:62)
    at MongoInstance.stderrHandler (node_modules/mongodb-memory-server-core/lib/util/MongoInstance.js:304:14)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:559:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
    at Readable.push (node:internal/streams/readable:390:5)
    at Pipe.onStreamRead (node:internal/stream_base_commons:191:23)
====== alias-server chronikWsHandler.js: "after all" hook for "parseWebsocketMessage removes a txid from pendingAliases if TX_REMOVED_FROM_MEMPOOL message includes that txid".alias-server chronikWsHandler.js "after all" hook for "parseWebsocketMessage removes a txid from pendingAliases if TX_REMOVED_FROM_MEMPOOL message includes that txid" ======
TypeError: Cannot read properties of undefined (reading 'close')
    at Context.<anonymous> (test/chronikWsHandler.test.js:38:31)
    at process.processImmediate (node:internal/timers:483:21)
====== alias-server db.js: "before all" hook for "initializeDb returns a mongo db instance of the expected schema".alias-server db.js "before all" hook for "initializeDb returns a mongo db instance of the expected schema" ======
Error: Instance failed to start because a library is missing or cannot be opened: "libcrypto.so.1.1"
    at MongoInstance.checkErrorInLine (node_modules/mongodb-memory-server-core/lib/util/MongoInstance.js:382:62)
    at MongoInstance.stderrHandler (node_modules/mongodb-memory-server-core/lib/util/MongoInstance.js:304:14)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:559:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
    at Readable.push (node:internal/streams/readable:390:5)
    at Pipe.onStreamRead (node:internal/stream_base_commons:191:23)
====== alias-server db.js: "after all" hook for "getPendingAliases returns only pending aliases with specified address and without tipHeight, if called with { _tipHeight: 0 } projection".alias-server db.js "after all" hook for "getPendingAliases returns only pending aliases with specified address and without tipHeight, if called with { _tipHeight: 0 } projection" ======
TypeError: Cannot read properties of undefined (reading 'close')
    at Context.<anonymous> (test/db.test.js:37:31)
    at process.processImmediate (node:internal/timers:483:21)
====== alias-server events.js: "before all" hook for "handleAppStartup calls handleBlockFinalized with tipHeight and completes function if block is avalanche finalized, and also removes pendingAliases that are in the avalanche confirmed block".alias-server events.js "before all" hook for "handleAppStartup calls handleBlockFinalized with tipHeight and completes function if block is avalanche finalized, and also removes pendingAliases that are in the avalanche confirmed block" ======
Error: Instance failed to start because a library is missing or cannot be opened: "libcrypto.so.1.1"
    at MongoInstance.checkErrorInLine (node_modules/mongodb-memory-server-core/lib/util/MongoInstance.js:382:62)
    at MongoInstance.stderrHandler (node_modules/mongodb-memory-server-core/lib/util/MongoInstance.js:304:14)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:559:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
    at Readable.push (node:internal/streams/readable:390:5)
    at Pipe.onStreamRead (node:internal/stream_base_commons:191:23)
====== alias-server events.js: "after all" hook for "handleAddedToMempool calls parseTxForPendingAliases if no chronik error".alias-server events.js "after all" hook for "handleAddedToMempool calls parseTxForPendingAliases if no chronik error" ======
TypeError: Cannot read properties of undefined (reading 'close')
    at Context.<anonymous> (test/events.test.js:40:31)
    at process.processImmediate (node:internal/timers:483:21)
====== alias-server main.js: "before all" hook for "main() connects to a websocket, and runs handleAppStartup() correctly".alias-server main.js "before all" hook for "main() connects to a websocket, and runs handleAppStartup() correctly" ======
Error: Instance failed to start because a library is missing or cannot be opened: "libcrypto.so.1.1"
    at MongoInstance.checkErrorInLine (node_modules/mongodb-memory-server-core/lib/util/MongoInstance.js:382:62)
    at MongoInstance.stderrHandler (node_modules/mongodb-memory-server-core/lib/util/MongoInstance.js:304:14)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:559:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
    at Readable.push (node:internal/streams/readable:390:5)
    at Pipe.onStreamRead (node:internal/stream_base_commons:191:23)
====== alias-server main.js: "after all" hook for "main() connects to a websocket, and runs handleAppStartup() correctly".alias-server main.js "after all" hook for "main() connects to a websocket, and runs handleAppStartup() correctly" ======
TypeError: Cannot read properties of undefined (reading 'close')
    at Context.<anonymous> (test/main.test.js:55:31)
    at process.processImmediate (node:internal/timers:483:21)

Each failure log is accessible here:
alias-server alias.js: "before all" hook for "parseAliasTx returns tx info for an alias tx with an overpaid fee".alias-server alias.js "before all" hook for "parseAliasTx returns tx info for an alias tx with an overpaid fee"
alias-server alias.js: "after all" hook for "parseTxForPendingAliases adds multiple pending alias registrations to the database if an incoming tx containing multiple alias registrations comes in".alias-server alias.js "after all" hook for "parseTxForPendingAliases adds multiple pending alias registrations to the database if an incoming tx containing multiple alias registrations comes in"
alias-server app.js: "before all" hook for "/prices returns aliasConstants.prices".alias-server app.js "before all" hook for "/prices returns aliasConstants.prices"
alias-server app.js: "after all" hook for "/address/:address returns an error on database error".alias-server app.js "after all" hook for "/address/:address returns an error on database error"
alias-server chronikWsHandler.js: "before all" hook for "initializeWebsocket returns expected websocket object for a p2pkh address".alias-server chronikWsHandler.js "before all" hook for "initializeWebsocket returns expected websocket object for a p2pkh address"
alias-server chronikWsHandler.js: "after all" hook for "parseWebsocketMessage removes a txid from pendingAliases if TX_REMOVED_FROM_MEMPOOL message includes that txid".alias-server chronikWsHandler.js "after all" hook for "parseWebsocketMessage removes a txid from pendingAliases if TX_REMOVED_FROM_MEMPOOL message includes that txid"
alias-server db.js: "before all" hook for "initializeDb returns a mongo db instance of the expected schema".alias-server db.js "before all" hook for "initializeDb returns a mongo db instance of the expected schema"
alias-server db.js: "after all" hook for "getPendingAliases returns only pending aliases with specified address and without tipHeight, if called with { _tipHeight: 0 } projection".alias-server db.js "after all" hook for "getPendingAliases returns only pending aliases with specified address and without tipHeight, if called with { _tipHeight: 0 } projection"
alias-server events.js: "before all" hook for "handleAppStartup calls handleBlockFinalized with tipHeight and completes function if block is avalanche finalized, and also removes pendingAliases that are in the avalanche confirmed block".alias-server events.js "before all" hook for "handleAppStartup calls handleBlockFinalized with tipHeight and completes function if block is avalanche finalized, and also removes pendingAliases that are in the avalanche confirmed block"
alias-server events.js: "after all" hook for "handleAddedToMempool calls parseTxForPendingAliases if no chronik error".alias-server events.js "after all" hook for "handleAddedToMempool calls parseTxForPendingAliases if no chronik error"
alias-server main.js: "before all" hook for "main() connects to a websocket, and runs handleAppStartup() correctly".alias-server main.js "before all" hook for "main() connects to a websocket, and runs handleAppStartup() correctly"
alias-server main.js: "after all" hook for "main() connects to a websocket, and runs handleAppStartup() correctly".alias-server main.js "after all" hook for "main() connects to a websocket, and runs handleAppStartup() correctly"

Tail of the build log:

    at S (/work/modules/ecash-agora/node_modules/tsx/dist/cjs/index.cjs:1:1292)
    at Object.<anonymous> (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4)
    at Module.load (node:internal/modules/cjs/loader:1288:32)
    at Module._load (node:internal/modules/cjs/loader:1104:12)
    at Module.require (node:internal/modules/cjs/loader:1311:19)
    at require (node:internal/modules/helpers:179:18)
    at Object.<anonymous> (/work/modules/ecash-lib/src/indexNodeJs.ts:5:1)
    at Module._compile (node:internal/modules/cjs/loader:1469:14)
    at Module.replacementCompile (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:60:13)
    at S (/work/modules/ecash-agora/node_modules/tsx/dist/cjs/index.cjs:1:1292)
    at Object.<anonymous> (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4)
    at Module.load (node:internal/modules/cjs/loader:1288:32)
    at Module._load (node:internal/modules/cjs/loader:1104:12)
    at Module.require (node:internal/modules/cjs/loader:1311:19)
    at require (node:internal/modules/helpers:179:18)
    at chaiAsPromised (/work/modules/ecash-agora/tests/oneshot.test.ts:25:8)
    at Object.<anonymous> (/work/modules/ecash-agora/tests/oneshot.test.ts:706:2)
    at Module._compile (node:internal/modules/cjs/loader:1469:14)
    at Module.replacementCompile (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:60:13)
    at S (/work/modules/ecash-agora/node_modules/tsx/dist/cjs/index.cjs:1:1292)
    at Object.<anonymous> (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4)
    at Module.load (node:internal/modules/cjs/loader:1288:32)
    at Module._load (node:internal/modules/cjs/loader:1104:12)
    at cjsLoader (node:internal/modules/esm/translators:346:17)
    at ModuleWrap.<anonymous> (node:internal/modules/esm/translators:286:7)
    at ModuleJob.run (node:internal/modules/esm/module_job:234:25)
    at async ModuleLoader.import (node:internal/modules/esm/loader:473:24)
    at async formattedImport (/work/modules/ecash-agora/node_modules/mocha/lib/nodejs/esm-utils.js:9:14)
    at async exports.requireOrImport (/work/modules/ecash-agora/node_modules/mocha/lib/nodejs/esm-utils.js:42:28)
    at async exports.loadFilesAsync (/work/modules/ecash-agora/node_modules/mocha/lib/nodejs/esm-utils.js:100:20)
    at async singleRun (/work/modules/ecash-agora/node_modules/mocha/lib/cli/run-helpers.js:125:3)
    at async exports.handler (/work/modules/ecash-agora/node_modules/mocha/lib/cli/run.js:370:5) {
  code: 'MODULE_NOT_FOUND',
  path: '/work/modules/ecash-lib/node_modules/ecashaddrjs/package.json',
  requestPath: 'ecashaddrjs'
}
------------|---------|----------|---------|---------|-------------------
File        | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
------------|---------|----------|---------|---------|-------------------
All files   |       0 |        0 |       0 |       0 |                   
 ad.ts      |       0 |        0 |       0 |       0 | 33-146            
 agora.ts   |       0 |        0 |       0 |       0 | 54-914            
 consts.ts  |       0 |      100 |     100 |       0 | 8-11              
 index.ts   |       0 |        0 |       0 |       0 |                   
 oneshot.ts |       0 |        0 |       0 |       0 | 65-286            
 partial.ts |       0 |        0 |       0 |       0 | 204-1406          
------------|---------|----------|---------|---------|-------------------

##teamcity[blockOpened name='Code Coverage Summary']
##teamcity[buildStatisticValue key='CodeCoverageAbsBCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsBTotal' value='514']
##teamcity[buildStatisticValue key='CodeCoverageAbsRCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsRTotal' value='207']
##teamcity[buildStatisticValue key='CodeCoverageAbsMCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsMTotal' value='77']
##teamcity[buildStatisticValue key='CodeCoverageAbsLCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsLTotal' value='514']
##teamcity[blockClosed name='Code Coverage Summary']
mv: cannot stat 'test_results/ecash-agora-integration-tests-junit.xml': No such file or directory
Build ecash-agora-integration-tests failed with exit code 1

Tail of the build log:

    at async exports.handler (/work/modules/ecash-lib/node_modules/mocha/lib/cli/run.js:370:5) {
  code: 'MODULE_NOT_FOUND',
  path: '/work/modules/ecash-lib/node_modules/ecashaddrjs/package.json',
  requestPath: 'ecashaddrjs'
}
----------------------------|---------|----------|---------|---------|------------------------------
File                        | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s            
----------------------------|---------|----------|---------|---------|------------------------------
All files                   |   16.99 |    13.76 |     5.5 |   17.25 |                              
 ecash-lib                  |       0 |        0 |       0 |       0 |                              
  eslint.config.js          |       0 |        0 |       0 |       0 |                              
 ecash-lib/src              |   30.73 |    15.57 |    8.21 |   31.12 |                              
  consts.ts                 |       0 |      100 |     100 |       0 | 6-8                          
  ecc.ts                    |   42.85 |    83.33 |      20 |   42.85 | 23-31,36                     
  hash.ts                   |   55.55 |    83.33 |      20 |   55.55 | 14,17,20,24                  
  index.ts                  |       0 |        0 |       0 |       0 |                              
  indexBrowser.ts           |       0 |        0 |       0 |       0 |                              
  indexNodeJs.ts            |       0 |        0 |       0 |       0 |                              
  initBrowser.ts            |       0 |      100 |       0 |       0 | 11-13                        
  initNodeJs.ts             |   71.42 |      100 |      50 |   83.33 | 11                           
  op.ts                     |    9.33 |     7.93 |   16.66 |    9.33 | ...-64,69-98,103-124,133-161 
  opcode.ts                 |     100 |    83.33 |     100 |     100 | 1                            
  script.ts                 |   14.03 |     23.8 |    6.66 |   14.54 | 23-199                       
  sigHashType.ts            |       0 |        0 |       0 |       0 | 19-166                       
  tx.ts                     |       0 |        0 |       0 |       0 | 21-176                       
  txBuilder.ts              |       0 |        0 |       0 |       0 | 74-240                       
  unsignedTx.ts             |       0 |        0 |       0 |       0 | 38-229                       
 ecash-lib/src/ffi          |    7.45 |     1.44 |       0 |    7.64 |                              
  ecash_lib_wasm_browser.js |       0 |        0 |       0 |       0 | 3-336                        
  ecash_lib_wasm_nodejs.js  |   16.32 |        5 |       0 |   16.55 | ...3-134,140-243,250-251,255 
 ecash-lib/src/io           |   16.54 |    40.32 |   15.15 |    16.4 |                              
  bytes.ts                  |     7.4 |    71.42 |    12.5 |     7.4 | 13-64                        
  hex.ts                    |   33.33 |     62.5 |      20 |   35.29 | 33-37,41-45,49-62,66-68      
  int.ts                    |       0 |        0 |       0 |       0 |                              
  str.ts                    |       0 |      100 |       0 |       0 | 5-15                         
  varsize.ts                |      12 |    22.72 |   33.33 |      12 | 14-24,35-47                  
  writer.ts                 |       0 |        0 |       0 |       0 |                              
  writerbytes.ts            |    6.66 |    26.31 |    12.5 |    6.66 | 21-79                        
  writerlength.ts           |      25 |    83.33 |   14.28 |      25 | 16-41                        
 ecash-lib/src/test         |       0 |        0 |       0 |       0 |                              
  testRunner.ts             |       0 |        0 |       0 |       0 | 17-207                       
 ecash-lib/src/token        |       0 |        0 |       0 |       0 |                              
  alp.ts                    |       0 |        0 |       0 |       0 | 13-145                       
  common.ts                 |       0 |      100 |     100 |       0 | 9-12                         
  empp.ts                   |       0 |        0 |       0 |       0 | 11-28                        
  slp.ts                    |       0 |        0 |       0 |       0 | 13-211                       
----------------------------|---------|----------|---------|---------|------------------------------

##teamcity[blockOpened name='Code Coverage Summary']
##teamcity[buildStatisticValue key='CodeCoverageAbsBCovered' value='196']
##teamcity[buildStatisticValue key='CodeCoverageAbsBTotal' value='1153']
##teamcity[buildStatisticValue key='CodeCoverageAbsRCovered' value='57']
##teamcity[buildStatisticValue key='CodeCoverageAbsRTotal' value='414']
##teamcity[buildStatisticValue key='CodeCoverageAbsMCovered' value='11']
##teamcity[buildStatisticValue key='CodeCoverageAbsMTotal' value='200']
##teamcity[buildStatisticValue key='CodeCoverageAbsLCovered' value='195']
##teamcity[buildStatisticValue key='CodeCoverageAbsLTotal' value='1130']
##teamcity[blockClosed name='Code Coverage Summary']
mv: cannot stat 'test_results/ecash-lib-integration-tests-junit.xml': No such file or directory
Build ecash-lib-integration-tests failed with exit code 1

Tail of the build log:

    at Module.replacementCompile (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:60:13)
    at Module.m._compile (/work/modules/chronik-client/node_modules/ts-node/src/index.ts:1618:23)
    at module.exports (/usr/lib/node_modules/nyc/node_modules/default-require-extensions/js.js:7:9)
    at /usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4
    at require.extensions.<computed> (/work/modules/chronik-client/node_modules/ts-node/src/index.ts:1621:12)
    at Object.<anonymous> (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4)
    at Module.load (node:internal/modules/cjs/loader:1288:32)
    at Function.Module._load (node:internal/modules/cjs/loader:1104:12)
    at Module.require (node:internal/modules/cjs/loader:1311:19)
    at require (node:internal/modules/helpers:179:18)
    at Object.<anonymous> (/work/modules/chronik-client/index.ts:5:1932)
    at Module._compile (node:internal/modules/cjs/loader:1469:14)
    at Module.replacementCompile (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:60:13)
    at Module.m._compile (/work/modules/chronik-client/node_modules/ts-node/src/index.ts:1618:23)
    at module.exports (/usr/lib/node_modules/nyc/node_modules/default-require-extensions/js.js:7:9)
    at /usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4
    at require.extensions.<computed> (/work/modules/chronik-client/node_modules/ts-node/src/index.ts:1621:12)
    at Object.<anonymous> (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4)
    at Module.load (node:internal/modules/cjs/loader:1288:32)
    at Function.Module._load (node:internal/modules/cjs/loader:1104:12)
    at Module.require (node:internal/modules/cjs/loader:1311:19)
    at require (node:internal/modules/helpers:179:18)
    at Object.<anonymous> (/work/modules/chronik-client/test/integration/block_and_blocks.ts:10:1)
    at Module._compile (node:internal/modules/cjs/loader:1469:14)
    at Module.replacementCompile (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:60:13)
    at Module.m._compile (/work/modules/chronik-client/node_modules/ts-node/src/index.ts:1618:23)
    at module.exports (/usr/lib/node_modules/nyc/node_modules/default-require-extensions/js.js:7:9)
    at /usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4
    at require.extensions.<computed> (/work/modules/chronik-client/node_modules/ts-node/src/index.ts:1621:12)
    at Object.<anonymous> (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4)
    at Module.load (node:internal/modules/cjs/loader:1288:32)
    at Function.Module._load (node:internal/modules/cjs/loader:1104:12)
    at Module.require (node:internal/modules/cjs/loader:1311:19)
    at require (node:internal/modules/helpers:179:18)
    at Object.exports.requireOrImport (/work/modules/chronik-client/node_modules/mocha/lib/nodejs/esm-utils.js:60:20)
    at async Object.exports.loadFilesAsync (/work/modules/chronik-client/node_modules/mocha/lib/nodejs/esm-utils.js:103:20)
    at async singleRun (/work/modules/chronik-client/node_modules/mocha/lib/cli/run-helpers.js:125:3)
    at async Object.exports.handler (/work/modules/chronik-client/node_modules/mocha/lib/cli/run.js:374:5)
--------------------|---------|----------|---------|---------|-------------------
File                | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
--------------------|---------|----------|---------|---------|-------------------
All files           |    0.55 |        0 |       0 |    0.55 |                   
 chronik-client     |     100 |      100 |     100 |     100 |                   
  index.ts          |     100 |      100 |     100 |     100 |                   
 chronik-client/src |    0.27 |        0 |       0 |    0.27 |                   
  ChronikClient.ts  |    0.27 |        0 |       0 |    0.27 | 6-1908            
--------------------|---------|----------|---------|---------|-------------------

##teamcity[blockOpened name='Code Coverage Summary']
##teamcity[buildStatisticValue key='CodeCoverageAbsBCovered' value='2']
##teamcity[buildStatisticValue key='CodeCoverageAbsBTotal' value='361']
##teamcity[buildStatisticValue key='CodeCoverageAbsRCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsRTotal' value='154']
##teamcity[buildStatisticValue key='CodeCoverageAbsMCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsMTotal' value='98']
##teamcity[buildStatisticValue key='CodeCoverageAbsLCovered' value='2']
##teamcity[buildStatisticValue key='CodeCoverageAbsLTotal' value='361']
##teamcity[blockClosed name='Code Coverage Summary']
mv: cannot stat 'test_results/chronik-client-integration-tests-junit.xml': No such file or directory
Build chronik-client-integration-tests failed with exit code 1

do not add string length validation (did not exist before)

Failed tests logs:

====== CashTab Unit Tests: <Tx /> Alias registration (v0) ======
Error: Hex string must have an even number of characters
    at stringToUint8Array (/work/modules/ecashaddrjs/dist/cashaddr.js:344:15)
    at Object.stringToUint8Array [as encode] (/work/modules/ecashaddrjs/dist/cashaddr.js:38:16)
    at encode (/work/cashtab/src/components/Home/Tx/index.js:214:51)
    at renderWithHooks (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:15486:18)
    at mountIndeterminateComponent (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:20103:13)
    at beginWork (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:21626:16)
    at beginWork$1 (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:27465:14)
    at performUnitOfWork (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26599:12)
    at workLoopSync (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26505:5)
    at renderRootSync (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26473:7)
    at recoverFromConcurrentError (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25889:20)
    at performConcurrentWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25789:22)
    at flushActQueue (/work/cashtab/node_modules/react/cjs/react.development.js:2667:24)
    at act (/work/cashtab/node_modules/react/cjs/react.development.js:2582:11)
    at /work/cashtab/node_modules/@testing-library/react/dist/act-compat.js:47:25
    at renderRoot (/work/cashtab/node_modules/@testing-library/react/dist/pure.js:180:26)
    at render (/work/cashtab/node_modules/@testing-library/react/dist/pure.js:271:10)
    at Object.<anonymous> (/work/cashtab/src/components/Home/Tx/__tests__/index.test.js:268:15)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <Configure /> Setting "Send Confirmations" settings will show send confirmations ======
Error: Unable to find an element by: [data-testid="tx-history"]

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findByTestId (/work/cashtab/src/components/Configure/__tests__/Configure.test.js:155:22)
====== CashTab Unit Tests: <Configure /> "ABSOLUTE MINIMUM fees" setting is unavailable if wallet holds 0.01 less than required balance of Cachet ======
Error: Unable to find an element by: [data-testid="tx-history"]

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findByTestId (/work/cashtab/src/components/Configure/__tests__/Configure.test.js:254:22)
====== CashTab Unit Tests: <Configure /> "ABSOLUTE MINIMUM fees" setting is available and effective if wallet holds exactly required balance of Cachet ======
Error: Unable to find an element by: [data-testid="tx-history"]

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findByTestId (/work/cashtab/src/components/Configure/__tests__/Configure.test.js:330:22)
====== CashTab Unit Tests: <Configure /> Setting "ABSOLUTE MINIMUM fees" settings will reduce fees to absolute min ======
Error: Unable to find an element by: [data-testid="tx-history"]

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findByTestId (/work/cashtab/src/components/Configure/__tests__/Configure.test.js:439:22)
====== CashTab Unit Tests: <Home /> Renders the loading component while loading, then the Home screen ======
Error: Unable to find an element with the text: 9,513.12 XEC. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findByText (/work/cashtab/src/components/Home/__tests__/Home.test.js:79:29)
====== CashTab Unit Tests: <Home /> Renders the Home screen with API error ======
Error: Unable to find an element with the text: Error in chronik connection. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findByText (/work/cashtab/src/components/Home/__tests__/Home.test.js:109:26)
====== CashTab Unit Tests: Cashtab opreturn methods Parse op_return_raw input for display on Send screen parseOpReturnRaw: Returns protocol identifier and raw hex for valid alias registration ======
Error: Hex string must have an even number of characters
    at stringToUint8Array (/work/modules/ecashaddrjs/dist/cashaddr.js:344:15)
    at Object.stringToUint8Array [as encode] (/work/modules/ecashaddrjs/dist/cashaddr.js:38:16)
    at encode (/work/cashtab/src/opreturn/index.js:149:34)
    at Object.<anonymous> (/work/cashtab/src/opreturn/__tests__/index.test.js:163:40)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <CashtabTestWrapper /> With default props, renders App component ======
Error: Unable to find an element with the text: 9,513.12 XEC. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findByText (/work/cashtab/src/components/App/fixtures/__tests__/CashtabTestWrapper.test.js:93:29)
====== CashTab Unit Tests: <App /> Navigation menu routes to expected components ======
Error: Unable to find an element by: [data-testid="tx-history"]

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findByTestId (/work/cashtab/src/components/App/__tests__/App.test.js:218:22)
====== CashTab Unit Tests: <App /> If Cashtab starts up with some settings keys missing, the missing keys are migrated to default values ======
Error: Hex string must have an even number of characters
    at stringToUint8Array (/work/modules/ecashaddrjs/dist/cashaddr.js:344:15)
    at Object.stringToUint8Array [as encode] (/work/modules/ecashaddrjs/dist/cashaddr.js:38:16)
    at encode (/work/cashtab/src/components/Home/Tx/index.js:214:51)
    at renderWithHooks (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:15486:18)
    at mountIndeterminateComponent (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:20103:13)
    at beginWork (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:21626:16)
    at beginWork$1 (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:27465:14)
    at performUnitOfWork (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26599:12)
    at workLoopSync (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26505:5)
    at renderRootSync (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26473:7)
    at recoverFromConcurrentError (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25889:20)
    at performConcurrentWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25789:22)
    at workLoop (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:266:34)
    at flushWork (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:239:14)
    at performWorkUntilDeadline (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:533:21)
    at Timeout.task [as _onTimeout] (/work/cashtab/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
    at listOnTimeout (node:internal/timers:581:17)
    at processTimers (node:internal/timers:519:7)
====== CashTab Unit Tests: <App /> Wallet with easter egg token sees easter egg ======
Error: Unable to find an element with the alt text: tabcash

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findByAltText (/work/cashtab/src/components/App/__tests__/App.test.js:629:29)
====== CashTab Unit Tests: <App /> If Cashtab starts with 1.5.* cashtabCache, it is wiped and migrated to 2.9.0 cashtabCache ======
Error: Hex string must have an even number of characters
    at stringToUint8Array (/work/modules/ecashaddrjs/dist/cashaddr.js:344:15)
    at Object.stringToUint8Array [as encode] (/work/modules/ecashaddrjs/dist/cashaddr.js:38:16)
    at encode (/work/cashtab/src/components/Home/Tx/index.js:214:51)
    at renderWithHooks (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:15486:18)
    at mountIndeterminateComponent (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:20103:13)
    at beginWork (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:21626:16)
    at beginWork$1 (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:27465:14)
    at performUnitOfWork (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26599:12)
    at workLoopSync (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26505:5)
    at renderRootSync (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26473:7)
    at recoverFromConcurrentError (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25889:20)
    at performConcurrentWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25789:22)
    at workLoop (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:266:34)
    at flushWork (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:239:14)
    at performWorkUntilDeadline (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:533:21)
    at Timeout.task [as _onTimeout] (/work/cashtab/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
    at listOnTimeout (node:internal/timers:581:17)
    at processTimers (node:internal/timers:519:7)
====== CashTab Unit Tests: <App /> A new user can import a mnemonic of a wallet with a balance ======
Error: expect(element).toHaveTextContent()

Expected element to have text content:
  9,513.12 XEC
Received:
  0.00 XEC
    at Object.toHaveTextContent (/work/cashtab/src/components/App/__tests__/App.test.js:715:60)
    at runNextTicks (node:internal/process/task_queues:60:5)
    at listOnTimeout (node:internal/timers:545:9)
    at processTimers (node:internal/timers:519:7)
====== CashTab Unit Tests: <App /> Migrating from wallet/savedWallet keys (version < 1.6.0): A user with an invalid Cashtab wallet as the active wallet is migrated on startup ======
Error: expect(element).toHaveTextContent()

Expected element to have text content:
  9,513.12 XEC
Received:
  0.00 XEC
    at Object.toHaveTextContent (/work/cashtab/src/components/App/__tests__/App.test.js:765:60)
    at runNextTicks (node:internal/process/task_queues:60:5)
    at listOnTimeout (node:internal/timers:545:9)
    at processTimers (node:internal/timers:519:7)
====== CashTab Unit Tests: <App /> Migrating from wallet/savedWallet keys (version < 1.6.0): A user with pre-2.1.0 valid wallets in savedWallets has them all migrated to new storage keys and new shape ======
Error: expect(element).toHaveTextContent()

Expected element to have text content:
  9,513.12 XEC
Received:
  0.00 XEC
    at Object.toHaveTextContent (/work/cashtab/src/components/App/__tests__/App.test.js:803:60)
    at runNextTicks (node:internal/process/task_queues:60:5)
    at listOnTimeout (node:internal/timers:545:9)
    at processTimers (node:internal/timers:519:7)
====== CashTab Unit Tests: <App /> Migrating (version >= 1.6.0 and < 2.1.0): A user with an invalid wallet stored at wallets key has that wallet migrated ======
Error: Unable to find an element with the title: Balance in XEC.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findByTitle (/work/cashtab/src/components/App/__tests__/App.test.js:843:29)
====== CashTab Unit Tests: <App /> Migrating (version >= 1.6.0 and < 2.1.0): A user with multiple invalid wallets stored at wallets key has them migrated ======
Error: Unable to find an element with the title: Balance in XEC.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findByTitle (/work/cashtab/src/components/App/__tests__/App.test.js:887:29)
====== CashTab Unit Tests: <App /> Cashtab version >= 1.6.0 and < 2.1.0: A user with an invalid Cashtab wallet as the active wallet is migrated on startup ======
Error: expect(element).toHaveTextContent()

Expected element to have text content:
  9,513.12 XEC
Received:
  0.00 XEC
    at Object.toHaveTextContent (/work/cashtab/src/components/App/__tests__/App.test.js:919:60)
    at runNextTicks (node:internal/process/task_queues:60:5)
    at listOnTimeout (node:internal/timers:545:9)
    at processTimers (node:internal/timers:519:7)
====== CashTab Unit Tests: <App /> A user with all valid wallets stored at wallets key does not have any wallets migrated ======
Error: Unable to find an element with the title: Balance in XEC.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findByTitle (/work/cashtab/src/components/App/__tests__/App.test.js:946:29)
====== CashTab Unit Tests: <App /> Migrating (version < 2.9.0): A user with multiple invalid wallets stored at wallets key has them migrated ======
Error: Unable to find an element with the title: Balance in XEC.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findByTitle (/work/cashtab/src/components/App/__tests__/App.test.js:988:29)
====== CashTab Unit Tests: <App /> Migrating (version < 2.9.0): A user with an invalid Cashtab wallet as the active wallet is migrated on startup ======
Error: expect(element).toHaveTextContent()

Expected element to have text content:
  9,513.12 XEC
Received:
  0.00 XEC
    at Object.toHaveTextContent (/work/cashtab/src/components/App/__tests__/App.test.js:1020:60)
    at runNextTicks (node:internal/process/task_queues:60:5)
    at listOnTimeout (node:internal/timers:545:9)
    at processTimers (node:internal/timers:519:7)
====== CashTab Unit Tests: <App /> If Cashtab starts with < 2.9.0 cashtabCache, it is wiped and migrated to 2.9.0 cashtabCache ======
Error: expect(received).toEqual(expected) // deep equality

- Expected  - 26
+ Received  +  1

@@ -1,6 +1,6 @@
- CashtabCache {
+ Object {
    "tokens": Map {
      "0000000000000000000000000000000000000000000000000000000000000000" => Object {
        "block": Object {
          "hash": "UNKNOWN",
          "height": 0,
@@ -19,34 +19,9 @@
        "timeFirstSeen": 0,
        "tokenType": Object {
          "number": 0,
          "protocol": "SLP",
          "type": "SLP_TOKEN_TYPE_UNKNOWN",
-       },
-     },
-     "3fee3384150b030490b7bee095a63900f66a45f2d8e3002ae2cf17ce3ef4d109" => Object {
-       "block": Object {
-         "hash": "00000000000000001239831f90580c859ec174316e91961cf0e8cde57c0d3acb",
-         "height": 782665,
-         "timestamp": 1678408305,
-       },
-       "genesisInfo": Object {
-         "decimals": 0,
-         "hash": "",
-         "tokenName": "BearNip",
-         "tokenTicker": "BEAR",
-         "url": "https://cashtab.com/",
-       },
-       "genesisMintBatons": 0,
-       "genesisOutputScripts": Array [
-         "76a91495e79f51d4260bc0dc3ba7fb77c7be92d0fbdd1d88ac",
-       ],
-       "genesisSupply": "4444",
-       "timeFirstSeen": 0,
-       "tokenType": Object {
-         "number": 1,
-         "protocol": "SLP",
-         "type": "SLP_TOKEN_TYPE_FUNGIBLE",
        },
      },
    },
  }

Ignored nodes: comments, script, style
<html>
  <head />
  <body>
    <div />
  </body>
</html>...
    at toEqual (/work/cashtab/src/components/App/__tests__/App.test.js:1069:15)
====== CashTab Unit Tests: <App /> We see a price notification if new price is at a new tens level in USD per 1,000,000 XEC, and a special notification if a zero is killed ======
Error: thrown: "Exceeded timeout of 120000 ms for a test.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."
    at it (/work/cashtab/src/components/App/__tests__/App.test.js:1103:5)
    at _dispatchDescribe (/work/cashtab/node_modules/jest-circus/build/index.js:91:26)
    at describe (/work/cashtab/node_modules/jest-circus/build/index.js:55:5)
    at Object.describe (/work/cashtab/src/components/App/__tests__/App.test.js:47:1)
    at Runtime._execModule (/work/cashtab/node_modules/jest-runtime/build/index.js:1439:24)
    at Runtime._loadModule (/work/cashtab/node_modules/jest-runtime/build/index.js:1022:12)
    at Runtime.requireModule (/work/cashtab/node_modules/jest-runtime/build/index.js:882:12)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:77:13)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <App /> We do not see price notifications if new price is at a new tens level in JPY per 1,000,000 XEC, because user fiat currency does not support zero killed notifications for JPY ======
Error: thrown: "Exceeded timeout of 120000 ms for a test.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."
    at it (/work/cashtab/src/components/App/__tests__/App.test.js:1150:5)
    at _dispatchDescribe (/work/cashtab/node_modules/jest-circus/build/index.js:91:26)
    at describe (/work/cashtab/node_modules/jest-circus/build/index.js:55:5)
    at Object.describe (/work/cashtab/src/components/App/__tests__/App.test.js:47:1)
    at Runtime._execModule (/work/cashtab/node_modules/jest-runtime/build/index.js:1439:24)
    at Runtime._loadModule (/work/cashtab/node_modules/jest-runtime/build/index.js:1022:12)
    at Runtime.requireModule (/work/cashtab/node_modules/jest-runtime/build/index.js:882:12)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:77:13)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)

Each failure log is accessible here:
CashTab Unit Tests: <Tx /> Alias registration (v0)
CashTab Unit Tests: <Configure /> Setting "Send Confirmations" settings will show send confirmations
CashTab Unit Tests: <Configure /> "ABSOLUTE MINIMUM fees" setting is unavailable if wallet holds 0.01 less than required balance of Cachet
CashTab Unit Tests: <Configure /> "ABSOLUTE MINIMUM fees" setting is available and effective if wallet holds exactly required balance of Cachet
CashTab Unit Tests: <Configure /> Setting "ABSOLUTE MINIMUM fees" settings will reduce fees to absolute min
CashTab Unit Tests: <Home /> Renders the loading component while loading, then the Home screen
CashTab Unit Tests: <Home /> Renders the Home screen with API error
CashTab Unit Tests: Cashtab opreturn methods Parse op_return_raw input for display on Send screen parseOpReturnRaw: Returns protocol identifier and raw hex for valid alias registration
CashTab Unit Tests: <CashtabTestWrapper /> With default props, renders App component
CashTab Unit Tests: <App /> Navigation menu routes to expected components
CashTab Unit Tests: <App /> If Cashtab starts up with some settings keys missing, the missing keys are migrated to default values
CashTab Unit Tests: <App /> Wallet with easter egg token sees easter egg
CashTab Unit Tests: <App /> If Cashtab starts with 1.5.* cashtabCache, it is wiped and migrated to 2.9.0 cashtabCache
CashTab Unit Tests: <App /> A new user can import a mnemonic of a wallet with a balance
CashTab Unit Tests: <App /> Migrating from wallet/savedWallet keys (version < 1.6.0): A user with an invalid Cashtab wallet as the active wallet is migrated on startup
CashTab Unit Tests: <App /> Migrating from wallet/savedWallet keys (version < 1.6.0): A user with pre-2.1.0 valid wallets in savedWallets has them all migrated to new storage keys and new shape
CashTab Unit Tests: <App /> Migrating (version >= 1.6.0 and < 2.1.0): A user with an invalid wallet stored at wallets key has that wallet migrated
CashTab Unit Tests: <App /> Migrating (version >= 1.6.0 and < 2.1.0): A user with multiple invalid wallets stored at wallets key has them migrated
CashTab Unit Tests: <App /> Cashtab version >= 1.6.0 and < 2.1.0: A user with an invalid Cashtab wallet as the active wallet is migrated on startup
CashTab Unit Tests: <App /> A user with all valid wallets stored at wallets key does not have any wallets migrated
CashTab Unit Tests: <App /> Migrating (version < 2.9.0): A user with multiple invalid wallets stored at wallets key has them migrated
CashTab Unit Tests: <App /> Migrating (version < 2.9.0): A user with an invalid Cashtab wallet as the active wallet is migrated on startup
CashTab Unit Tests: <App /> If Cashtab starts with < 2.9.0 cashtabCache, it is wiped and migrated to 2.9.0 cashtabCache
CashTab Unit Tests: <App /> We see a price notification if new price is at a new tens level in USD per 1,000,000 XEC, and a special notification if a zero is killed
CashTab Unit Tests: <App /> We do not see price notifications if new price is at a new tens level in JPY per 1,000,000 XEC, because user fiat currency does not support zero killed notifications for JPY

Failed tests logs:

====== alias-server alias.js: "before all" hook for "parseAliasTx returns tx info for an alias tx with an overpaid fee".alias-server alias.js "before all" hook for "parseAliasTx returns tx info for an alias tx with an overpaid fee" ======
Error: Instance failed to start because a library is missing or cannot be opened: "libcrypto.so.1.1"
    at MongoInstance.checkErrorInLine (node_modules/mongodb-memory-server-core/lib/util/MongoInstance.js:382:62)
    at MongoInstance.stderrHandler (node_modules/mongodb-memory-server-core/lib/util/MongoInstance.js:304:14)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:559:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
    at Readable.push (node:internal/streams/readable:390:5)
    at Pipe.onStreamRead (node:internal/stream_base_commons:191:23)
====== alias-server alias.js: "after all" hook for "parseTxForPendingAliases adds multiple pending alias registrations to the database if an incoming tx containing multiple alias registrations comes in".alias-server alias.js "after all" hook for "parseTxForPendingAliases adds multiple pending alias registrations to the database if an incoming tx containing multiple alias registrations comes in" ======
TypeError: Cannot read properties of undefined (reading 'close')
    at Context.<anonymous> (test/alias.test.js:44:31)
    at process.processImmediate (node:internal/timers:483:21)
====== alias-server app.js: "before all" hook for "/prices returns aliasConstants.prices".alias-server app.js "before all" hook for "/prices returns aliasConstants.prices" ======
Error: Instance failed to start because a library is missing or cannot be opened: "libcrypto.so.1.1"
    at MongoInstance.checkErrorInLine (node_modules/mongodb-memory-server-core/lib/util/MongoInstance.js:382:62)
    at MongoInstance.stderrHandler (node_modules/mongodb-memory-server-core/lib/util/MongoInstance.js:304:14)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:559:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
    at Readable.push (node:internal/streams/readable:390:5)
    at Pipe.onStreamRead (node:internal/stream_base_commons:191:23)
====== alias-server app.js: "after all" hook for "/address/:address returns an error on database error".alias-server app.js "after all" hook for "/address/:address returns an error on database error" ======
TypeError: Cannot read properties of undefined (reading 'close')
    at Context.<anonymous> (test/app.test.js:29:31)
    at process.processImmediate (node:internal/timers:483:21)
====== alias-server chronikWsHandler.js: "before all" hook for "initializeWebsocket returns expected websocket object for a p2pkh address".alias-server chronikWsHandler.js "before all" hook for "initializeWebsocket returns expected websocket object for a p2pkh address" ======
Error: Instance failed to start because a library is missing or cannot be opened: "libcrypto.so.1.1"
    at MongoInstance.checkErrorInLine (node_modules/mongodb-memory-server-core/lib/util/MongoInstance.js:382:62)
    at MongoInstance.stderrHandler (node_modules/mongodb-memory-server-core/lib/util/MongoInstance.js:304:14)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:559:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
    at Readable.push (node:internal/streams/readable:390:5)
    at Pipe.onStreamRead (node:internal/stream_base_commons:191:23)
====== alias-server chronikWsHandler.js: "after all" hook for "parseWebsocketMessage removes a txid from pendingAliases if TX_REMOVED_FROM_MEMPOOL message includes that txid".alias-server chronikWsHandler.js "after all" hook for "parseWebsocketMessage removes a txid from pendingAliases if TX_REMOVED_FROM_MEMPOOL message includes that txid" ======
TypeError: Cannot read properties of undefined (reading 'close')
    at Context.<anonymous> (test/chronikWsHandler.test.js:38:31)
    at process.processImmediate (node:internal/timers:483:21)
====== alias-server db.js: "before all" hook for "initializeDb returns a mongo db instance of the expected schema".alias-server db.js "before all" hook for "initializeDb returns a mongo db instance of the expected schema" ======
Error: Instance failed to start because a library is missing or cannot be opened: "libcrypto.so.1.1"
    at MongoInstance.checkErrorInLine (node_modules/mongodb-memory-server-core/lib/util/MongoInstance.js:382:62)
    at MongoInstance.stderrHandler (node_modules/mongodb-memory-server-core/lib/util/MongoInstance.js:304:14)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:559:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
    at Readable.push (node:internal/streams/readable:390:5)
    at Pipe.onStreamRead (node:internal/stream_base_commons:191:23)
====== alias-server db.js: "after all" hook for "getPendingAliases returns only pending aliases with specified address and without tipHeight, if called with { _tipHeight: 0 } projection".alias-server db.js "after all" hook for "getPendingAliases returns only pending aliases with specified address and without tipHeight, if called with { _tipHeight: 0 } projection" ======
TypeError: Cannot read properties of undefined (reading 'close')
    at Context.<anonymous> (test/db.test.js:37:31)
    at process.processImmediate (node:internal/timers:483:21)
====== alias-server events.js: "before all" hook for "handleAppStartup calls handleBlockFinalized with tipHeight and completes function if block is avalanche finalized, and also removes pendingAliases that are in the avalanche confirmed block".alias-server events.js "before all" hook for "handleAppStartup calls handleBlockFinalized with tipHeight and completes function if block is avalanche finalized, and also removes pendingAliases that are in the avalanche confirmed block" ======
Error: Instance failed to start because a library is missing or cannot be opened: "libcrypto.so.1.1"
    at MongoInstance.checkErrorInLine (node_modules/mongodb-memory-server-core/lib/util/MongoInstance.js:382:62)
    at MongoInstance.stderrHandler (node_modules/mongodb-memory-server-core/lib/util/MongoInstance.js:304:14)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:559:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
    at Readable.push (node:internal/streams/readable:390:5)
    at Pipe.onStreamRead (node:internal/stream_base_commons:191:23)
====== alias-server events.js: "after all" hook for "handleAddedToMempool calls parseTxForPendingAliases if no chronik error".alias-server events.js "after all" hook for "handleAddedToMempool calls parseTxForPendingAliases if no chronik error" ======
TypeError: Cannot read properties of undefined (reading 'close')
    at Context.<anonymous> (test/events.test.js:40:31)
    at process.processImmediate (node:internal/timers:483:21)
====== alias-server main.js: "before all" hook for "main() connects to a websocket, and runs handleAppStartup() correctly".alias-server main.js "before all" hook for "main() connects to a websocket, and runs handleAppStartup() correctly" ======
Error: Instance failed to start because a library is missing or cannot be opened: "libcrypto.so.1.1"
    at MongoInstance.checkErrorInLine (node_modules/mongodb-memory-server-core/lib/util/MongoInstance.js:382:62)
    at MongoInstance.stderrHandler (node_modules/mongodb-memory-server-core/lib/util/MongoInstance.js:304:14)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:559:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
    at Readable.push (node:internal/streams/readable:390:5)
    at Pipe.onStreamRead (node:internal/stream_base_commons:191:23)
====== alias-server main.js: "after all" hook for "main() connects to a websocket, and runs handleAppStartup() correctly".alias-server main.js "after all" hook for "main() connects to a websocket, and runs handleAppStartup() correctly" ======
TypeError: Cannot read properties of undefined (reading 'close')
    at Context.<anonymous> (test/main.test.js:55:31)
    at process.processImmediate (node:internal/timers:483:21)

Each failure log is accessible here:
alias-server alias.js: "before all" hook for "parseAliasTx returns tx info for an alias tx with an overpaid fee".alias-server alias.js "before all" hook for "parseAliasTx returns tx info for an alias tx with an overpaid fee"
alias-server alias.js: "after all" hook for "parseTxForPendingAliases adds multiple pending alias registrations to the database if an incoming tx containing multiple alias registrations comes in".alias-server alias.js "after all" hook for "parseTxForPendingAliases adds multiple pending alias registrations to the database if an incoming tx containing multiple alias registrations comes in"
alias-server app.js: "before all" hook for "/prices returns aliasConstants.prices".alias-server app.js "before all" hook for "/prices returns aliasConstants.prices"
alias-server app.js: "after all" hook for "/address/:address returns an error on database error".alias-server app.js "after all" hook for "/address/:address returns an error on database error"
alias-server chronikWsHandler.js: "before all" hook for "initializeWebsocket returns expected websocket object for a p2pkh address".alias-server chronikWsHandler.js "before all" hook for "initializeWebsocket returns expected websocket object for a p2pkh address"
alias-server chronikWsHandler.js: "after all" hook for "parseWebsocketMessage removes a txid from pendingAliases if TX_REMOVED_FROM_MEMPOOL message includes that txid".alias-server chronikWsHandler.js "after all" hook for "parseWebsocketMessage removes a txid from pendingAliases if TX_REMOVED_FROM_MEMPOOL message includes that txid"
alias-server db.js: "before all" hook for "initializeDb returns a mongo db instance of the expected schema".alias-server db.js "before all" hook for "initializeDb returns a mongo db instance of the expected schema"
alias-server db.js: "after all" hook for "getPendingAliases returns only pending aliases with specified address and without tipHeight, if called with { _tipHeight: 0 } projection".alias-server db.js "after all" hook for "getPendingAliases returns only pending aliases with specified address and without tipHeight, if called with { _tipHeight: 0 } projection"
alias-server events.js: "before all" hook for "handleAppStartup calls handleBlockFinalized with tipHeight and completes function if block is avalanche finalized, and also removes pendingAliases that are in the avalanche confirmed block".alias-server events.js "before all" hook for "handleAppStartup calls handleBlockFinalized with tipHeight and completes function if block is avalanche finalized, and also removes pendingAliases that are in the avalanche confirmed block"
alias-server events.js: "after all" hook for "handleAddedToMempool calls parseTxForPendingAliases if no chronik error".alias-server events.js "after all" hook for "handleAddedToMempool calls parseTxForPendingAliases if no chronik error"
alias-server main.js: "before all" hook for "main() connects to a websocket, and runs handleAppStartup() correctly".alias-server main.js "before all" hook for "main() connects to a websocket, and runs handleAppStartup() correctly"
alias-server main.js: "after all" hook for "main() connects to a websocket, and runs handleAppStartup() correctly".alias-server main.js "after all" hook for "main() connects to a websocket, and runs handleAppStartup() correctly"

Failed tests logs:

====== alias-server alias.js: "before all" hook for "parseAliasTx returns tx info for an alias tx with an overpaid fee".alias-server alias.js "before all" hook for "parseAliasTx returns tx info for an alias tx with an overpaid fee" ======
Error: Instance failed to start because a library is missing or cannot be opened: "libcrypto.so.1.1"
    at MongoInstance.checkErrorInLine (node_modules/mongodb-memory-server-core/lib/util/MongoInstance.js:382:62)
    at MongoInstance.stderrHandler (node_modules/mongodb-memory-server-core/lib/util/MongoInstance.js:304:14)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:559:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
    at Readable.push (node:internal/streams/readable:390:5)
    at Pipe.onStreamRead (node:internal/stream_base_commons:191:23)
====== alias-server alias.js: "after all" hook for "parseTxForPendingAliases adds multiple pending alias registrations to the database if an incoming tx containing multiple alias registrations comes in".alias-server alias.js "after all" hook for "parseTxForPendingAliases adds multiple pending alias registrations to the database if an incoming tx containing multiple alias registrations comes in" ======
TypeError: Cannot read properties of undefined (reading 'close')
    at Context.<anonymous> (test/alias.test.js:44:31)
    at process.processImmediate (node:internal/timers:483:21)
====== alias-server app.js: "before all" hook for "/prices returns aliasConstants.prices".alias-server app.js "before all" hook for "/prices returns aliasConstants.prices" ======
Error: Instance failed to start because a library is missing or cannot be opened: "libcrypto.so.1.1"
    at MongoInstance.checkErrorInLine (node_modules/mongodb-memory-server-core/lib/util/MongoInstance.js:382:62)
    at MongoInstance.stderrHandler (node_modules/mongodb-memory-server-core/lib/util/MongoInstance.js:304:14)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:559:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
    at Readable.push (node:internal/streams/readable:390:5)
    at Pipe.onStreamRead (node:internal/stream_base_commons:191:23)
====== alias-server app.js: "after all" hook for "/address/:address returns an error on database error".alias-server app.js "after all" hook for "/address/:address returns an error on database error" ======
TypeError: Cannot read properties of undefined (reading 'close')
    at Context.<anonymous> (test/app.test.js:29:31)
    at process.processImmediate (node:internal/timers:483:21)
====== alias-server chronikWsHandler.js: "before all" hook for "initializeWebsocket returns expected websocket object for a p2pkh address".alias-server chronikWsHandler.js "before all" hook for "initializeWebsocket returns expected websocket object for a p2pkh address" ======
Error: Instance failed to start because a library is missing or cannot be opened: "libcrypto.so.1.1"
    at MongoInstance.checkErrorInLine (node_modules/mongodb-memory-server-core/lib/util/MongoInstance.js:382:62)
    at MongoInstance.stderrHandler (node_modules/mongodb-memory-server-core/lib/util/MongoInstance.js:304:14)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:559:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
    at Readable.push (node:internal/streams/readable:390:5)
    at Pipe.onStreamRead (node:internal/stream_base_commons:191:23)
====== alias-server chronikWsHandler.js: "after all" hook for "parseWebsocketMessage removes a txid from pendingAliases if TX_REMOVED_FROM_MEMPOOL message includes that txid".alias-server chronikWsHandler.js "after all" hook for "parseWebsocketMessage removes a txid from pendingAliases if TX_REMOVED_FROM_MEMPOOL message includes that txid" ======
TypeError: Cannot read properties of undefined (reading 'close')
    at Context.<anonymous> (test/chronikWsHandler.test.js:38:31)
    at process.processImmediate (node:internal/timers:483:21)
====== alias-server db.js: "before all" hook for "initializeDb returns a mongo db instance of the expected schema".alias-server db.js "before all" hook for "initializeDb returns a mongo db instance of the expected schema" ======
Error: Instance failed to start because a library is missing or cannot be opened: "libcrypto.so.1.1"
    at MongoInstance.checkErrorInLine (node_modules/mongodb-memory-server-core/lib/util/MongoInstance.js:382:62)
    at MongoInstance.stderrHandler (node_modules/mongodb-memory-server-core/lib/util/MongoInstance.js:304:14)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:559:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
    at Readable.push (node:internal/streams/readable:390:5)
    at Pipe.onStreamRead (node:internal/stream_base_commons:191:23)
====== alias-server db.js: "after all" hook for "getPendingAliases returns only pending aliases with specified address and without tipHeight, if called with { _tipHeight: 0 } projection".alias-server db.js "after all" hook for "getPendingAliases returns only pending aliases with specified address and without tipHeight, if called with { _tipHeight: 0 } projection" ======
TypeError: Cannot read properties of undefined (reading 'close')
    at Context.<anonymous> (test/db.test.js:37:31)
    at process.processImmediate (node:internal/timers:483:21)
====== alias-server events.js: "before all" hook for "handleAppStartup calls handleBlockFinalized with tipHeight and completes function if block is avalanche finalized, and also removes pendingAliases that are in the avalanche confirmed block".alias-server events.js "before all" hook for "handleAppStartup calls handleBlockFinalized with tipHeight and completes function if block is avalanche finalized, and also removes pendingAliases that are in the avalanche confirmed block" ======
Error: Instance failed to start because a library is missing or cannot be opened: "libcrypto.so.1.1"
    at MongoInstance.checkErrorInLine (node_modules/mongodb-memory-server-core/lib/util/MongoInstance.js:382:62)
    at MongoInstance.stderrHandler (node_modules/mongodb-memory-server-core/lib/util/MongoInstance.js:304:14)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:559:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
    at Readable.push (node:internal/streams/readable:390:5)
    at Pipe.onStreamRead (node:internal/stream_base_commons:191:23)
====== alias-server events.js: "after all" hook for "handleAddedToMempool calls parseTxForPendingAliases if no chronik error".alias-server events.js "after all" hook for "handleAddedToMempool calls parseTxForPendingAliases if no chronik error" ======
TypeError: Cannot read properties of undefined (reading 'close')
    at Context.<anonymous> (test/events.test.js:40:31)
    at process.processImmediate (node:internal/timers:483:21)
====== alias-server main.js: "before all" hook for "main() connects to a websocket, and runs handleAppStartup() correctly".alias-server main.js "before all" hook for "main() connects to a websocket, and runs handleAppStartup() correctly" ======
Error: Instance failed to start because a library is missing or cannot be opened: "libcrypto.so.1.1"
    at MongoInstance.checkErrorInLine (node_modules/mongodb-memory-server-core/lib/util/MongoInstance.js:382:62)
    at MongoInstance.stderrHandler (node_modules/mongodb-memory-server-core/lib/util/MongoInstance.js:304:14)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:559:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
    at Readable.push (node:internal/streams/readable:390:5)
    at Pipe.onStreamRead (node:internal/stream_base_commons:191:23)
====== alias-server main.js: "after all" hook for "main() connects to a websocket, and runs handleAppStartup() correctly".alias-server main.js "after all" hook for "main() connects to a websocket, and runs handleAppStartup() correctly" ======
TypeError: Cannot read properties of undefined (reading 'close')
    at Context.<anonymous> (test/main.test.js:55:31)
    at process.processImmediate (node:internal/timers:483:21)

Each failure log is accessible here:
alias-server alias.js: "before all" hook for "parseAliasTx returns tx info for an alias tx with an overpaid fee".alias-server alias.js "before all" hook for "parseAliasTx returns tx info for an alias tx with an overpaid fee"
alias-server alias.js: "after all" hook for "parseTxForPendingAliases adds multiple pending alias registrations to the database if an incoming tx containing multiple alias registrations comes in".alias-server alias.js "after all" hook for "parseTxForPendingAliases adds multiple pending alias registrations to the database if an incoming tx containing multiple alias registrations comes in"
alias-server app.js: "before all" hook for "/prices returns aliasConstants.prices".alias-server app.js "before all" hook for "/prices returns aliasConstants.prices"
alias-server app.js: "after all" hook for "/address/:address returns an error on database error".alias-server app.js "after all" hook for "/address/:address returns an error on database error"
alias-server chronikWsHandler.js: "before all" hook for "initializeWebsocket returns expected websocket object for a p2pkh address".alias-server chronikWsHandler.js "before all" hook for "initializeWebsocket returns expected websocket object for a p2pkh address"
alias-server chronikWsHandler.js: "after all" hook for "parseWebsocketMessage removes a txid from pendingAliases if TX_REMOVED_FROM_MEMPOOL message includes that txid".alias-server chronikWsHandler.js "after all" hook for "parseWebsocketMessage removes a txid from pendingAliases if TX_REMOVED_FROM_MEMPOOL message includes that txid"
alias-server db.js: "before all" hook for "initializeDb returns a mongo db instance of the expected schema".alias-server db.js "before all" hook for "initializeDb returns a mongo db instance of the expected schema"
alias-server db.js: "after all" hook for "getPendingAliases returns only pending aliases with specified address and without tipHeight, if called with { _tipHeight: 0 } projection".alias-server db.js "after all" hook for "getPendingAliases returns only pending aliases with specified address and without tipHeight, if called with { _tipHeight: 0 } projection"
alias-server events.js: "before all" hook for "handleAppStartup calls handleBlockFinalized with tipHeight and completes function if block is avalanche finalized, and also removes pendingAliases that are in the avalanche confirmed block".alias-server events.js "before all" hook for "handleAppStartup calls handleBlockFinalized with tipHeight and completes function if block is avalanche finalized, and also removes pendingAliases that are in the avalanche confirmed block"
alias-server events.js: "after all" hook for "handleAddedToMempool calls parseTxForPendingAliases if no chronik error".alias-server events.js "after all" hook for "handleAddedToMempool calls parseTxForPendingAliases if no chronik error"
alias-server main.js: "before all" hook for "main() connects to a websocket, and runs handleAppStartup() correctly".alias-server main.js "before all" hook for "main() connects to a websocket, and runs handleAppStartup() correctly"
alias-server main.js: "after all" hook for "main() connects to a websocket, and runs handleAppStartup() correctly".alias-server main.js "after all" hook for "main() connects to a websocket, and runs handleAppStartup() correctly"

This revision is now accepted and ready to land.Nov 21 2024, 22:22