From 8e3fa6dcf1064dcfc987ac9ba463fd5b16bb6ff9 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Sun, 16 Nov 2025 13:37:04 -0800 Subject: [PATCH] feat(ESM): Converted code base to ESM format, away from CommonJS --- README.md | 8 +- package-lock.json | 483 ++++++++++++++++++ package.json | 16 +- src/address.js | 10 +- src/bch-js.js | 52 +- src/bitcoincash.js | 21 +- src/blockchain.js | 4 +- src/control.js | 4 +- src/crypto.js | 6 +- src/dsproof.js | 4 +- src/ecash.js | 2 +- src/ecpair.js | 6 +- src/electrumx.js | 6 +- src/encryption.js | 4 +- src/generating.js | 4 +- src/hdnode.js | 10 +- src/mining.js | 4 +- src/mnemonic.js | 12 +- src/price.js | 4 +- src/psf-slp-indexer.js | 8 +- src/raw-transactions.js | 4 +- src/schnorr.js | 4 +- src/script.js | 8 +- src/slp/address.js | 8 +- src/slp/ecpair.js | 8 +- src/slp/nft1.js | 12 +- src/slp/slp.js | 16 +- src/slp/tokentype1.js | 16 +- src/slp/utils.js | 8 +- src/transaction-builder.js | 10 +- src/transaction.js | 10 +- src/util.js | 4 +- src/utxo.js | 12 +- test/e2e/bch-js-e2e-tests.js | 7 +- test/e2e/ipfs/ipfs-e2e.js | 10 +- test/e2e/rate-limits/anonymous-rate-limits.js | 9 +- .../e2e/rate-limits/basic-auth-rate-limits.js | 7 +- test/e2e/rate-limits/free-rate-limits.js | 7 +- test/e2e/rate-limits/full-node-rate-limits.js | 7 +- test/e2e/rate-limits/indexer-rate-limits.js | 7 +- .../sendrawtransaction.js | 46 +- .../sendrawtransaction.js | 46 +- test/e2e/send-token/send-token.js | 8 +- test/e2e/util/e2e-util.js | 10 +- test/e2e/utxo/unsynced-indexer.js | 2 +- test/integration/blockchain.js | 10 +- .../chains/abc/psf-slp-indexer-integration.js | 5 +- test/integration/chains/abc/rawtransaction.js | 10 +- .../chains/abc/utxo-integration.js | 5 +- test/integration/chains/bchn/dsproof.js | 5 +- .../bchn/psf-slp-indexer.integration.js | 5 +- .../integration/chains/bchn/rawtransaction.js | 10 +- test/integration/chains/bchn/slp.js | 10 +- .../chains/bchn/transaction-integration.js | 5 +- test/integration/chains/bchn/util.js | 10 +- .../chains/bchn/utxo-integration.js | 5 +- test/integration/chains/testnet/blockchain.js | 14 +- test/integration/chains/testnet/control.js | 6 +- test/integration/chains/testnet/electrumx.js | 10 +- .../chains/testnet/rawtransaction.js | 14 +- test/integration/chains/testnet/slp.js | 14 +- test/integration/chains/testnet/util.js | 14 +- test/integration/control.js | 4 +- test/integration/electrumx.js | 8 +- test/integration/price.js | 5 +- test/integration/rawtransaction.js | 10 +- test/integration/slp.js | 10 +- test/integration/transaction-integration.js | 5 +- test/unit/address.js | 11 +- test/unit/bitcoin-cash.js | 8 +- test/unit/blockchain.js | 15 +- test/unit/control.js | 8 +- test/unit/crypto.js | 10 +- test/unit/dsproof.js | 9 +- test/unit/ecash.js | 5 +- test/unit/ecpairs.js | 10 +- test/unit/electrumx.js | 14 +- test/unit/encryption.js | 11 +- test/unit/fixtures/bitcore-mock.js | 2 +- test/unit/fixtures/block-mock.js | 2 +- test/unit/fixtures/blockchain-mock.js | 2 +- test/unit/fixtures/dsproof-mock.js | 2 +- test/unit/fixtures/electrumx-mock.js | 2 +- test/unit/fixtures/encryption-mock.js | 2 +- test/unit/fixtures/ipfs-mock.js | 2 +- test/unit/fixtures/openbazaar-mock.js | 2 +- test/unit/fixtures/price-mocks.js | 2 +- test/unit/fixtures/psf-slp-indexer-mock.js | 2 +- test/unit/fixtures/rawtransaction-mock.js | 2 +- test/unit/fixtures/slp/mock-utils.js | 2 +- test/unit/fixtures/transaction-mock.js | 2 +- test/unit/fixtures/utxo-mocks.js | 2 +- test/unit/generating.js | 8 +- test/unit/hdnode.js | 12 +- test/unit/mining.js | 8 +- test/unit/mnemonic.js | 8 +- test/unit/price.js | 9 +- test/unit/psf-slp-indexer.js | 14 +- test/unit/raw-tranactions.js | 19 +- test/unit/scripts.js | 10 +- test/unit/slp-address.js | 10 +- test/unit/slp-ecpair.js | 8 +- test/unit/slp-nft1.js | 13 +- test/unit/slp-tokentype1.js | 13 +- test/unit/slp-utils.js | 15 +- test/unit/transaction-builder.js | 13 +- test/unit/transaction-unit.js | 9 +- test/unit/util.js | 11 +- test/unit/utxo-unit.js | 11 +- 109 files changed, 1012 insertions(+), 456 deletions(-) diff --git a/README.md b/README.md index 044c94d..9d3ac62 100644 --- a/README.md +++ b/README.md @@ -31,8 +31,8 @@ Here are two YouTube walk-through videos to help you get started: - Instantiate the library in your code: -``` -const BCHJS = require("@psf/bch-js") +```javascript +import BCHJS from "@psf/bch-js" let bchjs = new BCHJS() // Defaults to BCHN network. ``` @@ -51,8 +51,8 @@ rate limits when interacting with the back end server. See [this article](https: - Implicitly: bch-js will detect your JWT token if you set the `BCHJSTOKEN` environment variable. - Explicitly: You can directly feed in the JWT token with the `apiToken` property when instantiating the library. Here is an example: -``` -const BCHJS = require("@psf/bch-js") +```javascript +import BCHJS from "@psf/bch-js" let bchjs = new BCHJS({ restURL: 'https://bchn.fullstack.cash/v5/', apiToken: 'eyJhbGciO...' // Your JWT token here. diff --git a/package-lock.json b/package-lock.json index 3f4821b..3baca65 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,6 +36,8 @@ }, "devDependencies": { "apidoc": "0.50.5", + "assert": "^2.1.0", + "c8": "^10.1.3", "chai": "4.1.2", "husky": "4.3.8", "lodash.clonedeep": "4.5.0", @@ -313,6 +315,16 @@ "node": ">=6.9.0" } }, + "node_modules/@bcoe/v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-1.0.2.tgz", + "integrity": "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/@chris.troutner/bip32-utils": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@chris.troutner/bip32-utils/-/bip32-utils-1.0.5.tgz", @@ -789,6 +801,109 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -1209,6 +1324,17 @@ "@octokit/openapi-types": "^18.0.0" } }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@pnpm/config.env-replace": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", @@ -1560,6 +1686,13 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", @@ -2231,6 +2364,20 @@ "node": ">=0.10.0" } }, + "node_modules/assert": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz", + "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "is-nan": "^1.3.2", + "object-is": "^1.1.5", + "object.assign": "^4.1.4", + "util": "^0.12.5" + } + }, "node_modules/assertion-error": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", @@ -2636,6 +2783,176 @@ "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", "license": "MIT" }, + "node_modules/c8": { + "version": "10.1.3", + "resolved": "https://registry.npmjs.org/c8/-/c8-10.1.3.tgz", + "integrity": "sha512-LvcyrOAaOnrrlMpW22n690PUvxiq4Uf9WMhQwNJ9vgagkL/ph1+D4uvjvDA5XCbykrc0sx+ay6pVi9YZ1GnhyA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@bcoe/v8-coverage": "^1.0.1", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^3.1.1", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.1", + "istanbul-reports": "^3.1.6", + "test-exclude": "^7.0.1", + "v8-to-istanbul": "^9.0.0", + "yargs": "^17.7.2", + "yargs-parser": "^21.1.1" + }, + "bin": { + "c8": "bin/c8.js" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "monocart-coverage-reports": "^2" + }, + "peerDependenciesMeta": { + "monocart-coverage-reports": { + "optional": true + } + } + }, + "node_modules/c8/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/c8/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/c8/node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/c8/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/c8/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/c8/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/c8/node_modules/test-exclude": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.1.tgz", + "integrity": "sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^10.4.1", + "minimatch": "^9.0.4" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/c8/node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/c8/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, "node_modules/caching-transform": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", @@ -3722,6 +4039,13 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, "node_modules/ecashaddrjs": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/ecashaddrjs/-/ecashaddrjs-1.0.7.tgz", @@ -6568,6 +6892,23 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-nan": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-negative-zero": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", @@ -7015,6 +7356,22 @@ "node": ">=8" } }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/java-properties": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/java-properties/-/java-properties-1.0.2.tgz", @@ -7852,6 +8209,16 @@ "node": ">= 6" } }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/mocha": { "version": "9.2.1", "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.1.tgz", @@ -11345,6 +11712,13 @@ "node": ">=8" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -11412,6 +11786,30 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "license": "MIT" }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, "node_modules/path-to-regexp": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", @@ -13435,6 +13833,22 @@ "node": ">=8" } }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/string.prototype.matchall": { "version": "4.0.12", "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", @@ -13532,6 +13946,20 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", @@ -14303,6 +14731,20 @@ "requires-port": "^1.0.0" } }, + "node_modules/util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -14326,6 +14768,28 @@ "dev": true, "license": "MIT" }, + "node_modules/v8-to-istanbul": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -14771,6 +15235,25 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", diff --git a/package.json b/package.json index 4d4e513..ee5916e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,7 @@ { "name": "@psf/bch-js", "version": "6.0.0", + "type": "module", "description": "A JavaScript library for working with Bitcoin Cash, eCash, and SLP Tokens", "author": "Chris Troutner ", "contributors": [ @@ -9,7 +10,7 @@ ], "main": "src/bch-js", "scripts": { - "test": "nyc mocha --trace-warnings --unhandled-rejections=strict --timeout 30000 test/unit/", + "test": "c8 mocha --trace-warnings --unhandled-rejections=strict --timeout 30000 test/unit/", "test:integration": "npm run test:integration:bchn", "test:integration:nft": "export RESTURL=https://bchn.fullstack.cash/v5/ && export IS_USING_FREE_TIER=true && mocha --timeout 30000 -g '#nft1' test/integration/chains/bchn/slp.js", "test:integration:abc": "export RESTURL=https://abc.fullstack.cash/v5/ && mocha --timeout 30000 test/integration/ && mocha --timeout 30000 test/integration/chains/abc/", @@ -21,10 +22,6 @@ "test:integration:decatur:bchn": "export RESTURL=http://192.168.2.127:3000/v5/ && mocha --timeout 30000 test/integration/ && mocha --timeout 30000 test/integration/chains/bchn/", "test:integration:decatur:abc": "export RESTURL=http://192.168.2.142:3000/v5/ && mocha --timeout 30000 test/integration && mocha --timeout 30000 test/integration/chains/abc/", "test:integration:temp:bchn": "export RESTURL=http://157.90.174.219:3000/v5/ && mocha --timeout 30000 test/integration/", - "test:temp": "export RESTURL=http://localhost:3000/v5/ && mocha --timeout 30000 -g '#Encryption' test/integration/", - "test:temp2": "mocha --timeout=30000 -g '#TransactionLib' test/unit/", - "test:temp3": "export RESTURL=https://bchn.fullstack.cash/v5/ && mocha --timeout 30000 -g '#DSProof' test/integration/chains/", - "test:temp4": "export RESTURL=http://localhost:3000/v5/ && mocha --timeout 30000 -g '#decodeOpReturn' test/integration/", "coverage": "nyc --reporter=html mocha --timeout 25000 test/unit/", "docs": "./node_modules/.bin/apidoc -i src/ -o docs", "lint": "standard --env mocha --fix" @@ -63,6 +60,8 @@ }, "devDependencies": { "apidoc": "0.50.5", + "assert": "2.1.0", + "c8": "10.1.3", "chai": "4.1.2", "husky": "4.3.8", "lodash.clonedeep": "4.5.0", @@ -70,15 +69,10 @@ "nyc": "15.1.0", "semantic-release": "19.0.5", "sinon": "9.2.2", - "standard": "^16.0.4" + "standard": "16.0.4" }, "apidoc": { "title": "bch-js", "url": "bchjs." - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint" - } } } diff --git a/src/address.js b/src/address.js index f27a02f..70abf68 100644 --- a/src/address.js +++ b/src/address.js @@ -1,7 +1,7 @@ -// const axios = require("axios") -const Bitcoin = require('@psf/bitcoincashjs-lib') -const cashaddr = require('ecashaddrjs') -const coininfo = require('@psf/coininfo') +// import axios from "axios" +import Bitcoin from '@psf/bitcoincashjs-lib' +import cashaddr from 'ecashaddrjs' +import coininfo from '@psf/coininfo' class Address { constructor (config) { @@ -871,4 +871,4 @@ class Address { } } -module.exports = Address +export default Address diff --git a/src/bch-js.js b/src/bch-js.js index 612c83e..1d1431b 100644 --- a/src/bch-js.js +++ b/src/bch-js.js @@ -7,36 +7,36 @@ */ // bch-api mainnet. -const DEFAULT_REST_API = 'https://api.fullstack.cash/v5/' // const DEFAULT_REST_API = "http://localhost:3000/v5/" // local deps -const BitcoinCash = require('./bitcoincash') -const Crypto = require('./crypto') -const Util = require('./util') -const Blockchain = require('./blockchain') -const Control = require('./control') -const Generating = require('./generating') -const Mining = require('./mining') -const RawTransactions = require('./raw-transactions') -const Mnemonic = require('./mnemonic') -const Address = require('./address') -const HDNode = require('./hdnode') -const TransactionBuilder = require('./transaction-builder') -const ECPair = require('./ecpair') -const Script = require('./script') -const Price = require('./price') -const Schnorr = require('./schnorr') -const SLP = require('./slp/slp') -const Encryption = require('./encryption') -const Utxo = require('./utxo') -const Transaction = require('./transaction') -const DSProof = require('./dsproof') -const Ecash = require('./ecash') +import BitcoinCash from './bitcoincash.js' +import Crypto from './crypto.js' +import Util from './util.js' +import Blockchain from './blockchain.js' +import Control from './control.js' +import Generating from './generating.js' +import Mining from './mining.js' +import RawTransactions from './raw-transactions.js' +import Mnemonic from './mnemonic.js' +import Address from './address.js' +import HDNode from './hdnode.js' +import TransactionBuilder from './transaction-builder.js' +import ECPair from './ecpair.js' +import Script from './script.js' +import Price from './price.js' +import Schnorr from './schnorr.js' +import SLP from './slp/slp.js' +import Encryption from './encryption.js' +import Utxo from './utxo.js' +import Transaction from './transaction.js' +import DSProof from './dsproof.js' +import Ecash from './ecash.js' // Indexers -const Electrumx = require('./electrumx') -const PsfSlpIndexer = require('./psf-slp-indexer') +import Electrumx from './electrumx.js' +import PsfSlpIndexer from './psf-slp-indexer.js' +const DEFAULT_REST_API = 'https://api.fullstack.cash/v5/' class BCHJS { constructor (config) { @@ -120,4 +120,4 @@ class BCHJS { } } -module.exports = BCHJS +export default BCHJS diff --git a/src/bitcoincash.js b/src/bitcoincash.js index 9fcc0d7..bb6b506 100644 --- a/src/bitcoincash.js +++ b/src/bitcoincash.js @@ -1,13 +1,12 @@ -const Bitcoin = require('@psf/bitcoincashjs-lib') -const sb = require('satoshi-bitcoin') -const bitcoinMessage = require('bitcoinjs-message') -const bs58 = require('bs58') -const bip21 = require('@psf/bip21') -const coininfo = require('@psf/coininfo') -const bip38 = require('bip38') -const wif = require('wif') - -const Buffer = require('safe-buffer').Buffer +import Bitcoin from '@psf/bitcoincashjs-lib' +import sb from 'satoshi-bitcoin' +import bitcoinMessage from 'bitcoinjs-message' +import bs58 from 'bs58' +import bip21 from '@psf/bip21' +import coininfo from '@psf/coininfo' +import bip38 from 'bip38' +import wif from 'wif' +import { Buffer } from 'safe-buffer' class BitcoinCash { constructor (address) { @@ -519,4 +518,4 @@ class BitcoinCash { } } -module.exports = BitcoinCash +export default BitcoinCash diff --git a/src/blockchain.js b/src/blockchain.js index b5aee34..d033df4 100644 --- a/src/blockchain.js +++ b/src/blockchain.js @@ -3,7 +3,7 @@ - Add blockhash functionality back into getTxOutProof */ -const axios = require('axios') +import axios from 'axios' // let _this @@ -833,4 +833,4 @@ class Blockchain { } } -module.exports = Blockchain +export default Blockchain diff --git a/src/control.js b/src/control.js index 903383c..c76303e 100644 --- a/src/control.js +++ b/src/control.js @@ -2,7 +2,7 @@ API endpoints for basic control and information of the full node. */ -const axios = require('axios') +import axios from 'axios' // let _this // Global reference to the instance of this class. @@ -115,4 +115,4 @@ class Control { // } } -module.exports = Control +export default Control diff --git a/src/crypto.js b/src/crypto.js index 6b76287..ead073c 100644 --- a/src/crypto.js +++ b/src/crypto.js @@ -1,5 +1,5 @@ -const randomBytes = require('randombytes') -const Bitcoin = require('@psf/bitcoincashjs-lib') +import randomBytes from 'randombytes' +import Bitcoin from '@psf/bitcoincashjs-lib' class Crypto { /** @@ -135,4 +135,4 @@ class Crypto { } } -module.exports = Crypto +export default Crypto diff --git a/src/dsproof.js b/src/dsproof.js index 1c04613..2be305f 100644 --- a/src/dsproof.js +++ b/src/dsproof.js @@ -1,4 +1,4 @@ -const axios = require('axios') +import axios from 'axios' let _this @@ -78,4 +78,4 @@ class DSProof { } } -module.exports = DSProof +export default DSProof diff --git a/src/ecash.js b/src/ecash.js index ecc812b..a6d281b 100644 --- a/src/ecash.js +++ b/src/ecash.js @@ -44,4 +44,4 @@ class eCash { } } -module.exports = eCash +export default eCash diff --git a/src/ecpair.js b/src/ecpair.js index ce4fc42..49ae864 100644 --- a/src/ecpair.js +++ b/src/ecpair.js @@ -1,5 +1,5 @@ -const Bitcoin = require('@psf/bitcoincashjs-lib') -const coininfo = require('@psf/coininfo') +import Bitcoin from '@psf/bitcoincashjs-lib' +import coininfo from '@psf/coininfo' class ECPair { static setAddress (address) { @@ -166,4 +166,4 @@ class ECPair { } } -module.exports = ECPair +export default ECPair diff --git a/src/electrumx.js b/src/electrumx.js index 0bc8ccb..6a78e51 100644 --- a/src/electrumx.js +++ b/src/electrumx.js @@ -3,10 +3,10 @@ by FullStack.cash */ // Public npm libraries -const axios = require('axios') +import axios from 'axios' // Local libraries. -const Blockchain = require('./blockchain') +import Blockchain from './blockchain.js' // const Address = require('./address') // let _this @@ -727,4 +727,4 @@ class ElectrumX { } } -module.exports = ElectrumX +export default ElectrumX diff --git a/src/encryption.js b/src/encryption.js index 2b1c88a..38bf418 100644 --- a/src/encryption.js +++ b/src/encryption.js @@ -2,7 +2,7 @@ This library contains useful functions that deal with encryption. */ -const axios = require('axios') +import axios from 'axios' let _this @@ -73,4 +73,4 @@ class Encryption { } } -module.exports = Encryption +export default Encryption diff --git a/src/generating.js b/src/generating.js index ee4c313..f181474 100644 --- a/src/generating.js +++ b/src/generating.js @@ -1,4 +1,4 @@ -const axios = require('axios') +import axios from 'axios' // let _this @@ -41,4 +41,4 @@ class Generating { } } -module.exports = Generating +export default Generating diff --git a/src/hdnode.js b/src/hdnode.js index a6867d3..0799eb0 100644 --- a/src/hdnode.js +++ b/src/hdnode.js @@ -1,7 +1,7 @@ -const Bitcoin = require('@psf/bitcoincashjs-lib') -const coininfo = require('@psf/coininfo') -const bip32utils = require('@chris.troutner/bip32-utils') -const bchaddrjs = require('bchaddrjs-slp') +import Bitcoin from '@psf/bitcoincashjs-lib' +import coininfo from '@psf/coininfo' +import bip32utils from '@chris.troutner/bip32-utils' +import bchaddrjs from 'bchaddrjs-slp' class HDNode { constructor (address) { @@ -637,4 +637,4 @@ class HDNode { } } -module.exports = HDNode +export default HDNode diff --git a/src/mining.js b/src/mining.js index 6d39a10..f4fd6a3 100644 --- a/src/mining.js +++ b/src/mining.js @@ -1,4 +1,4 @@ -const axios = require('axios') +import axios from 'axios' // let _this @@ -80,4 +80,4 @@ class Mining { } } -module.exports = Mining +export default Mining diff --git a/src/mnemonic.js b/src/mnemonic.js index 587c2d1..e95af88 100644 --- a/src/mnemonic.js +++ b/src/mnemonic.js @@ -1,11 +1,11 @@ /* eslint no-prototype-builtins: "off" */ /* eslint node/no-callback-literal: "off" */ -const BIP39 = require('bip39') -const randomBytes = require('randombytes') -const Bitcoin = require('@psf/bitcoincashjs-lib') -const Buffer = require('safe-buffer').Buffer -const wif = require('wif') +import BIP39 from 'bip39' +import randomBytes from 'randombytes' +import Bitcoin from '@psf/bitcoincashjs-lib' +import { Buffer } from 'safe-buffer' +import wif from 'wif' class Mnemonic { constructor (address) { @@ -338,7 +338,7 @@ class Mnemonic { } } -module.exports = Mnemonic +export default Mnemonic // The following code is from: https://raw.githubusercontent.com/iancoleman/bip39/7ff86d4c983f1e8c80b87b31acfd69fcf98c1b82/src/js/levenshtein.js diff --git a/src/price.js b/src/price.js index c06c2be..c1703fe 100644 --- a/src/price.js +++ b/src/price.js @@ -1,4 +1,4 @@ -const axios = require('axios') +import axios from 'axios' // let _this @@ -268,4 +268,4 @@ class Price { } } -module.exports = Price +export default Price diff --git a/src/psf-slp-indexer.js b/src/psf-slp-indexer.js index d3b700b..585ee19 100644 --- a/src/psf-slp-indexer.js +++ b/src/psf-slp-indexer.js @@ -7,11 +7,11 @@ */ // Public npm libraries -const axios = require('axios') +import axios from 'axios' // Local libraries -const RawTransaction = require('./raw-transactions') -const SlpUtils = require('./slp/utils') +import RawTransaction from './raw-transactions.js' +import SlpUtils from './slp/utils.js' // let _this @@ -539,4 +539,4 @@ class PsfSlpIndexer { } } -module.exports = PsfSlpIndexer +export default PsfSlpIndexer diff --git a/src/raw-transactions.js b/src/raw-transactions.js index 89ea1ba..074b7c9 100644 --- a/src/raw-transactions.js +++ b/src/raw-transactions.js @@ -1,4 +1,4 @@ -const axios = require('axios') +import axios from 'axios' // let _this @@ -498,4 +498,4 @@ class RawTransactions { } } -module.exports = RawTransactions +export default RawTransactions diff --git a/src/schnorr.js b/src/schnorr.js index ca01095..d01afe0 100644 --- a/src/schnorr.js +++ b/src/schnorr.js @@ -1,4 +1,4 @@ -const schnorr = require('bip-schnorr') +import schnorr from 'bip-schnorr' class Schnorr { constructor (config) { @@ -509,4 +509,4 @@ class Schnorr { } } -module.exports = Schnorr +export default Schnorr diff --git a/src/script.js b/src/script.js index a4ba2ed..a73ca76 100644 --- a/src/script.js +++ b/src/script.js @@ -1,5 +1,7 @@ -const Bitcoin = require('@psf/bitcoincashjs-lib') -const opcodes = require('@psf/bitcoincash-ops') +import Bitcoin from '@psf/bitcoincashjs-lib' +/* eslint-disable */ +import opcodes from '@psf/bitcoincash-ops' with { type: 'json' } +/* eslint-enable */ class Script { constructor () { @@ -240,4 +242,4 @@ class Script { } } -module.exports = Script +export default Script diff --git a/src/slp/address.js b/src/slp/address.js index c8f6f20..d3ffa56 100644 --- a/src/slp/address.js +++ b/src/slp/address.js @@ -1,9 +1,9 @@ -const BCHJSAddress = require('../address') +import BCHJSAddress from '../address.js' + +import bchaddrjs from 'bchaddrjs-slp' // const bchAddress = new BCHJSAddress() let bchAddress -const bchaddrjs = require('bchaddrjs-slp') - class Address extends BCHJSAddress { constructor (config) { super(config) @@ -661,4 +661,4 @@ class Address extends BCHJSAddress { } } -module.exports = Address +export default Address diff --git a/src/slp/ecpair.js b/src/slp/ecpair.js index 91852d0..aa4f75e 100644 --- a/src/slp/ecpair.js +++ b/src/slp/ecpair.js @@ -1,9 +1,9 @@ -// const BCHJS = require("../bch-js") +// import BCHJS from "../bch-js.js" // const bchjs = new BCHJS() -const BCHJSECPair = require('../ecpair') +import BCHJSECPair from '../ecpair.js' -const bchaddrjs = require('bchaddrjs-slp') +import bchaddrjs from 'bchaddrjs-slp' class ECPair extends BCHJSECPair { /* @@ -31,4 +31,4 @@ class ECPair extends BCHJSECPair { } } -module.exports = ECPair +export default ECPair diff --git a/src/slp/nft1.js b/src/slp/nft1.js index f3c4d1c..d12d6b7 100644 --- a/src/slp/nft1.js +++ b/src/slp/nft1.js @@ -9,18 +9,18 @@ */ // Public npm libraries -// const axios = require('axios') +// import axios from 'axios' // Local libraries. -const Address = require('./address') +import Address from './address.js' -// const BigNumber = require('bignumber.js') -const slpMdm = require('slp-mdm') +// import BigNumber from 'bignumber.js' +import slpMdm from 'slp-mdm' +import TransactionBuilder from '../transaction-builder.js' // let _this // const addy = new Address() let addy -const TransactionBuilder = require('../transaction-builder') class Nft1 { constructor (config) { @@ -421,4 +421,4 @@ class Nft1 { } } -module.exports = Nft1 +export default Nft1 diff --git a/src/slp/slp.js b/src/slp/slp.js index 35e8acc..38c595c 100644 --- a/src/slp/slp.js +++ b/src/slp/slp.js @@ -7,13 +7,13 @@ // imports // require deps -// const BCHJS = require("../bch-js") -const Address = require('./address') -const ECPair = require('./ecpair') -// const HDNode = require("./hdnode") -const TokenType1 = require('./tokentype1') -const NFT1 = require('./nft1') -const Utils = require('./utils') +// import BCHJS from "../bch-js.js" +import Address from './address.js' +import ECPair from './ecpair.js' +// import HDNode from "./hdnode.js" +import TokenType1 from './tokentype1.js' +import NFT1 from './nft1.js' +import Utils from './utils.js' // SLP is a superset of BITBOX class SLP { @@ -46,4 +46,4 @@ class SLP { } } -module.exports = SLP +export default SLP diff --git a/src/slp/tokentype1.js b/src/slp/tokentype1.js index 26b26d9..92fc726 100644 --- a/src/slp/tokentype1.js +++ b/src/slp/tokentype1.js @@ -2,19 +2,19 @@ This library handles the OP_RETURN of SLP TokenType1 transactions. */ -// const BCHJS = require("../bch-js") +// import BCHJS from "../bch-js.js" // const bchjs = new BCHJS() -const Address = require('./address') -const Script = require('../script') +import Address from './address.js' +import Script from '../script.js' -const BigNumber = require('bignumber.js') -const slpMdm = require('slp-mdm') -const axios = require('axios') +import BigNumber from 'bignumber.js' +import slpMdm from 'slp-mdm' +import axios from 'axios' +import TransactionBuilder from '../transaction-builder.js' // const addy = new Address() let addy -const TransactionBuilder = require('../transaction-builder') let _this // local global @@ -483,4 +483,4 @@ class TokenType1 { } } -module.exports = TokenType1 +export default TokenType1 diff --git a/src/slp/utils.js b/src/slp/utils.js index 882f429..0c1f83b 100644 --- a/src/slp/utils.js +++ b/src/slp/utils.js @@ -1,11 +1,11 @@ /* eslint-disable no-useless-catch */ // Public npm libraries -const axios = require('axios') -const slpParser = require('slp-parser') +import axios from 'axios' +import slpParser from 'slp-parser' // Local libraries -const Util = require('../util') +import Util from '../util.js' let _this @@ -184,4 +184,4 @@ class Utils { } } -module.exports = Utils +export default Utils diff --git a/src/transaction-builder.js b/src/transaction-builder.js index a2ca33e..77be344 100644 --- a/src/transaction-builder.js +++ b/src/transaction-builder.js @@ -1,7 +1,7 @@ -const Bitcoin = require('@psf/bitcoincashjs-lib') -const coininfo = require('@psf/coininfo') -const bip66 = require('bip66') -const bip68 = require('bc-bip68') +import Bitcoin from '@psf/bitcoincashjs-lib' +import coininfo from '@psf/coininfo' +import bip66 from 'bip66' +import bip68 from 'bc-bip68' class TransactionBuilder { static setAddress (address) { @@ -163,4 +163,4 @@ class TransactionBuilder { } } -module.exports = TransactionBuilder +export default TransactionBuilder diff --git a/src/transaction.js b/src/transaction.js index a01bef7..e08b369 100644 --- a/src/transaction.js +++ b/src/transaction.js @@ -6,10 +6,10 @@ // const BigNumber = require('bignumber.js') // Local libraries -const RawTransaction = require('./raw-transactions') -const SlpUtils = require('./slp/utils') -const Blockchain = require('./blockchain') -const PsfSlpIndexer = require('./psf-slp-indexer') +import RawTransaction from './raw-transactions.js' +import SlpUtils from './slp/utils.js' +import Blockchain from './blockchain.js' +import PsfSlpIndexer from './psf-slp-indexer.js' class Transaction { constructor (config = {}) { @@ -77,4 +77,4 @@ class Transaction { } } -module.exports = Transaction +export default Transaction diff --git a/src/util.js b/src/util.js index 71fdafc..d1cc4c1 100644 --- a/src/util.js +++ b/src/util.js @@ -1,4 +1,4 @@ -const axios = require('axios') +import axios from 'axios' // let _this @@ -305,4 +305,4 @@ class Util { } } -module.exports = Util +export default Util diff --git a/src/utxo.js b/src/utxo.js index efd3bde..68d55f4 100644 --- a/src/utxo.js +++ b/src/utxo.js @@ -6,11 +6,11 @@ */ // Local libraries -const Electrumx = require('./electrumx') -const Slp = require('./slp/slp') -const PsfSlpIndexer = require('./psf-slp-indexer') -const BigNumber = require('bignumber.js') -const Blockchain = require('./blockchain') +import Electrumx from './electrumx.js' +import Slp from './slp/slp.js' +import PsfSlpIndexer from './psf-slp-indexer.js' +import BigNumber from 'bignumber.js' +import Blockchain from './blockchain.js' class UTXO { constructor (config = {}) { @@ -420,4 +420,4 @@ class UTXO { } } -module.exports = UTXO +export default UTXO diff --git a/test/e2e/bch-js-e2e-tests.js b/test/e2e/bch-js-e2e-tests.js index 819af6d..427de78 100644 --- a/test/e2e/bch-js-e2e-tests.js +++ b/test/e2e/bch-js-e2e-tests.js @@ -2,10 +2,11 @@ A Mocha test file for running end-to-end (e2e) tests. */ -// const mocha = require("mocha") -const assert = require('chai').assert +// import mocha from "mocha" +import chai from 'chai' -const sendToken = require('./send-token/send-token') +import sendToken from './send-token/send-token.js' +const { assert } = chai describe('#end-to-end tests', () => { describe('#send-tokens', () => { diff --git a/test/e2e/ipfs/ipfs-e2e.js b/test/e2e/ipfs/ipfs-e2e.js index 8e4527e..dda61dc 100644 --- a/test/e2e/ipfs/ipfs-e2e.js +++ b/test/e2e/ipfs/ipfs-e2e.js @@ -3,12 +3,18 @@ IPFS is working. */ -process.env.IPFS_API = 'http://localhost:5001' +import { fileURLToPath } from 'url' +import { dirname } from 'path' // process.env.IPFS_API = `https://ipfs-api.fullstack.cash` -const BCHJS = require('../../../src/bch-js') +import BCHJS from '../../../src/bch-js.js' + +process.env.IPFS_API = 'http://localhost:5001' const bchjs = new BCHJS() +const __filename = fileURLToPath(import.meta.url) +const __dirname = dirname(__filename) + describe('#IPFS', () => { it('should upload a file to the server', async () => { const path = `${__dirname.toString()}/ipfs-e2e.js` diff --git a/test/e2e/rate-limits/anonymous-rate-limits.js b/test/e2e/rate-limits/anonymous-rate-limits.js index b9ffba6..713fb16 100644 --- a/test/e2e/rate-limits/anonymous-rate-limits.js +++ b/test/e2e/rate-limits/anonymous-rate-limits.js @@ -12,13 +12,14 @@ mocha --timeout=30000 anonymous-rate-limits.js */ -const assert = require('chai').assert +import chai from 'chai' +// const RESTURL = `http://localhost:3000/v5/` + +import BCHJS from '../../../src/bch-js.js' +const { assert } = chai // const RESTURL = `https://abc.fullstack.cash/v5/` const RESTURL = 'https://bchn.fullstack.cash/v5/' -// const RESTURL = `http://localhost:3000/v5/` - -const BCHJS = require('../../../src/bch-js') const bchjs = new BCHJS({ restURL: RESTURL }) describe('#anonymous rate limits', () => { diff --git a/test/e2e/rate-limits/basic-auth-rate-limits.js b/test/e2e/rate-limits/basic-auth-rate-limits.js index 704dff2..ad76bfd 100644 --- a/test/e2e/rate-limits/basic-auth-rate-limits.js +++ b/test/e2e/rate-limits/basic-auth-rate-limits.js @@ -7,11 +7,12 @@ - Update the PRO_PASS value with a current PRO_PASSES string used by bch-api. */ -const assert = require('chai').assert +import chai from 'chai' + +import BCHJS from '../../../src/bch-js.js' +const { assert } = chai const PRO_PASS = 'testpassword' - -const BCHJS = require('../../../src/bch-js') const bchjs = new BCHJS({ // restURL: `https://bchn.fullstack.cash/v5/`, restURL: 'https://abc.fullstack.cash/v5/', diff --git a/test/e2e/rate-limits/free-rate-limits.js b/test/e2e/rate-limits/free-rate-limits.js index e244942..0d62bb1 100644 --- a/test/e2e/rate-limits/free-rate-limits.js +++ b/test/e2e/rate-limits/free-rate-limits.js @@ -11,12 +11,13 @@ - Update the JWT_TOKEN value with a current free-level JWT token. */ -const assert = require('chai').assert +import chai from 'chai' + +import BCHJS from '../../../src/bch-js.js' +const { assert } = chai const JWT_TOKEN = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjVlODhhY2YyMDIyMWMxMDAxMmFkOTQwMSIsImVtYWlsIjoiZGVtb0BkZW1vLmNvbSIsImFwaUxldmVsIjoxMCwicmF0ZUxpbWl0IjozLCJpYXQiOjE2MDQ4NTQ2OTEsImV4cCI6MTYwNzQ0NjY5MX0.iwse0z0KDKHx9graCxcOwj6lSlfKQAb1zLhmjvygvts' - -const BCHJS = require('../../../src/bch-js') const bchjs = new BCHJS({ restURL: 'https://api.fullstack.cash/v5/', // restURL: `http://localhost:3000/v5/`, diff --git a/test/e2e/rate-limits/full-node-rate-limits.js b/test/e2e/rate-limits/full-node-rate-limits.js index a8466d6..ffb7eef 100644 --- a/test/e2e/rate-limits/full-node-rate-limits.js +++ b/test/e2e/rate-limits/full-node-rate-limits.js @@ -11,12 +11,13 @@ - Update the JWT_TOKEN value with a paid tier JWT token. */ -const assert = require('chai').assert +import chai from 'chai' + +import BCHJS from '../../../src/bch-js.js' +const { assert } = chai const JWT_TOKEN = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjVlODhhY2JmMDIyMWMxMDAxMmFkOTNmZiIsImVtYWlsIjoiY2hyaXMudHJvdXRuZXJAZ21haWwuY29tIiwiYXBpTGV2ZWwiOjQwLCJyYXRlTGltaXQiOjMsImlhdCI6MTYwMzIyNzEwNCwiZXhwIjoxNjA1ODE5MTA0fQ.CV36grzdD36Ht3BwZGHG4XU40CVDzMRw9Ars1x1r27M' - -const BCHJS = require('../../../src/bch-js') const bchjs = new BCHJS({ // restURL: `https://bchn.fullstack.cash/v5/`, restURL: 'https:/abc.fullstack.cash/v5/', diff --git a/test/e2e/rate-limits/indexer-rate-limits.js b/test/e2e/rate-limits/indexer-rate-limits.js index 679c37b..ca5041d 100644 --- a/test/e2e/rate-limits/indexer-rate-limits.js +++ b/test/e2e/rate-limits/indexer-rate-limits.js @@ -7,12 +7,13 @@ - Update the JWT_TOKEN value with a current indexer-level JWT token. */ -const assert = require('chai').assert +import chai from 'chai' + +import BCHJS from '../../../src/bch-js.js' +const { assert } = chai const JWT_TOKEN = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjVlODhhY2JmMDIyMWMxMDAxMmFkOTNmZiIsImVtYWlsIjoiY2hyaXMudHJvdXRuZXJAZ21haWwuY29tIiwiYXBpTGV2ZWwiOjQwLCJyYXRlTGltaXQiOjMsImlhdCI6MTYwMzIyNzEwNCwiZXhwIjoxNjA1ODE5MTA0fQ.CV36grzdD36Ht3BwZGHG4XU40CVDzMRw9Ars1x1r27M' - -const BCHJS = require('../../../src/bch-js') const bchjs = new BCHJS({ // restURL: `https://bchn.fullstack.cash/v5/`, restURL: 'https://abc.fullstack.cash/v5/', diff --git a/test/e2e/send-raw-transaction-bulk/sendrawtransaction.js b/test/e2e/send-raw-transaction-bulk/sendrawtransaction.js index 4a99c92..73b5b77 100644 --- a/test/e2e/send-raw-transaction-bulk/sendrawtransaction.js +++ b/test/e2e/send-raw-transaction-bulk/sendrawtransaction.js @@ -18,26 +18,33 @@ const RECV_ADDR2 = 'bchtest:qz6yw0kqgfkknfy6jh2jvlfnkzmre3lt2u0pgcckdk' const SATOSHIS_TO_SEND = 1000 // Instantiate BITBOX. -const bitboxLib = '../../../lib/BITBOX' -const BITBOXSDK = require(bitboxLib) -const BITBOX = new BITBOXSDK({ restURL: 'https://trest.bitcoin.com/v2/' }) -// const BITBOX = new BITBOXSDK({ restURL: "http://localhost:3000/v2/" }) - -// const util = require('util') +// Note: Dynamic require with variable - use dynamic import in ESM +const bitboxLib = '../../../lib/BITBOX.js' +let BITBOXSDK, BITBOX, walletInfo // Open the wallet generated with create-wallet. -let walletInfo = {} -try { - walletInfo = require('./wallet.json') -} catch (err) { - console.log( - 'Could not open wallet.json. Generate a wallet with create-wallet first.' - ) - process.exit(0) -} +let SEND_ADDR, SEND_MNEMONIC -const SEND_ADDR = walletInfo.cashAddress -const SEND_MNEMONIC = walletInfo.mnemonic +// Load dependencies asynchronously +async function loadDependencies () { + BITBOXSDK = (await import(bitboxLib)).default + BITBOX = new BITBOXSDK({ restURL: 'https://trest.bitcoin.com/v2/' }) + // const BITBOX = new BITBOXSDK({ restURL: "http://localhost:3000/v2/" }) + + try { + /* eslint-disable */ + walletInfo = (await import('./wallet.json', { with: { type: 'json' } })).default + /* eslint-enable */ + } catch (err) { + console.log( + 'Could not open wallet.json. Generate a wallet with create-wallet first.' + ) + process.exit(0) + } + + SEND_ADDR = walletInfo.cashAddress + SEND_MNEMONIC = walletInfo.mnemonic +} async function testSend () { try { @@ -57,7 +64,10 @@ async function testSend () { console.log('Error in testSend: ', err) } } -testSend() +// Load dependencies then run test +loadDependencies().then(() => { + testSend() +}) // Build a TX hex with the largest UTXO. async function buildTx1 (recAddr) { diff --git a/test/e2e/send-raw-transaction-single/sendrawtransaction.js b/test/e2e/send-raw-transaction-single/sendrawtransaction.js index d7e48ca..2c51fb2 100644 --- a/test/e2e/send-raw-transaction-single/sendrawtransaction.js +++ b/test/e2e/send-raw-transaction-single/sendrawtransaction.js @@ -17,26 +17,33 @@ const RECV_ADDR1 = 'bchtest:qzfn2mly05t6fjsh5kjj0dqq0jjtct27ng089dgg05' const SATOSHIS_TO_SEND = 1000 // Instantiate BITBOX. -const bitboxLib = '../../../lib/BITBOX' -const BITBOXSDK = require(bitboxLib) -const BITBOX = new BITBOXSDK({ restURL: 'https://trest.bitcoin.com/v2/' }) -// const BITBOX = new BITBOXSDK({ restURL: "http://localhost:3000/v2/" }) - -// const util = require('util') +// Note: Dynamic require with variable - use dynamic import in ESM +const bitboxLib = '../../../lib/BITBOX.js' +let BITBOXSDK, BITBOX, walletInfo // Open the wallet generated with create-wallet. -let walletInfo = {} -try { - walletInfo = require('./wallet.json') -} catch (err) { - console.log( - 'Could not open wallet.json. Generate a wallet with create-wallet first.' - ) - process.exit(0) -} +let SEND_ADDR, SEND_MNEMONIC -const SEND_ADDR = walletInfo.cashAddress -const SEND_MNEMONIC = walletInfo.mnemonic +// Load dependencies asynchronously +async function loadDependencies () { + BITBOXSDK = (await import(bitboxLib)).default + BITBOX = new BITBOXSDK({ restURL: 'https://trest.bitcoin.com/v2/' }) + // const BITBOX = new BITBOXSDK({ restURL: "http://localhost:3000/v2/" }) + + try { + /* eslint-disable */ + walletInfo = (await import('./wallet.json', { with: { type: 'json' } })).default + /* eslint-enable */ + } catch (err) { + console.log( + 'Could not open wallet.json. Generate a wallet with create-wallet first.' + ) + process.exit(0) + } + + SEND_ADDR = walletInfo.cashAddress + SEND_MNEMONIC = walletInfo.mnemonic +} async function testSend () { try { @@ -54,7 +61,10 @@ async function testSend () { console.log('Error in testSend: ', err) } } -testSend() +// Load dependencies then run test +loadDependencies().then(() => { + testSend() +}) // Build a TX hex with the largest UTXO. async function buildTx1 (recAddr) { diff --git a/test/e2e/send-token/send-token.js b/test/e2e/send-token/send-token.js index 12237bc..4669d1d 100644 --- a/test/e2e/send-token/send-token.js +++ b/test/e2e/send-token/send-token.js @@ -8,7 +8,9 @@ */ // Inspect utility used for debugging. -const util = require('util') +import util from 'util' + +import lib from '../util/e2e-util.js' util.inspect.defaultOptions = { showHidden: true, colors: true, @@ -21,8 +23,6 @@ util.inspect.defaultOptions = { const WALLET1 = '../wallet1.json' const WALLET2 = '../wallet2.json' -const lib = require('../util/e2e-util') - // The main test function. // Sends a token and reports on how long it takes to show up in SLPDB production. async function sendTokenTest () { @@ -95,6 +95,6 @@ function sleep (ms) { return new Promise(resolve => setTimeout(resolve, ms)) } -module.exports = { +export default { sendTokenTest } diff --git a/test/e2e/util/e2e-util.js b/test/e2e/util/e2e-util.js index 1b605cd..d22d6c1 100644 --- a/test/e2e/util/e2e-util.js +++ b/test/e2e/util/e2e-util.js @@ -3,14 +3,14 @@ tests. */ -module.exports = { +export default { openWallet, sendToken, getTestTokenBalance, threeDecimals } -const SLPSDK = require('../../../lib/SLP') +import SLPSDK from '../../../lib/SLP.js' const slpsdk = new SLPSDK() const testTokenId = @@ -20,7 +20,11 @@ const testTokenId = // token balance. async function openWallet (filename) { try { - const walletInfo = require(filename) + // Note: Dynamic imports for JSON files - use createRequire or import with assert + // For ESM, we need to handle dynamic JSON imports differently + /* eslint-disable */ + const walletInfo = await import(filename, { with: { type: 'json' } }).then(m => m.default) + /* eslint-enable */ // const walletBalance = await getBalance(walletInfo) // const walletBalance = await slpsdk.Utils.balancesForAddress( diff --git a/test/e2e/utxo/unsynced-indexer.js b/test/e2e/utxo/unsynced-indexer.js index bf3128f..d0a4938 100644 --- a/test/e2e/utxo/unsynced-indexer.js +++ b/test/e2e/utxo/unsynced-indexer.js @@ -9,7 +9,7 @@ - Start a local copy of bch-api */ -const BCHJS = require('../../../src/bch-js.js') +import BCHJS from '../../../src/bch-js.js' const bchjs = new BCHJS({ restURL: 'http://localhost:3000/v5/' }) diff --git a/test/integration/blockchain.js b/test/integration/blockchain.js index d1a7d1f..db36731 100644 --- a/test/integration/blockchain.js +++ b/test/integration/blockchain.js @@ -7,13 +7,13 @@ of an e2e test to be properly tested. */ -const chai = require('chai') -const assert = chai.assert -const BCHJS = require('../../src/bch-js') -const bchjs = new BCHJS() +import chai from 'chai' +import BCHJS from '../../src/bch-js.js' // Inspect utility used for debugging. -const util = require('util') +import util from 'util' +const assert = chai.assert +const bchjs = new BCHJS() util.inspect.defaultOptions = { showHidden: true, colors: true, diff --git a/test/integration/chains/abc/psf-slp-indexer-integration.js b/test/integration/chains/abc/psf-slp-indexer-integration.js index 40a1a0b..520c851 100644 --- a/test/integration/chains/abc/psf-slp-indexer-integration.js +++ b/test/integration/chains/abc/psf-slp-indexer-integration.js @@ -4,10 +4,11 @@ */ // Global npm libraries -const assert = require('chai').assert +import chai from 'chai' // Local libraries -const BCHJS = require('../../../../src/bch-js') +import BCHJS from '../../../../src/bch-js.js' +const { assert } = chai let bchjs describe('#psf-slp-indexer', () => { diff --git a/test/integration/chains/abc/rawtransaction.js b/test/integration/chains/abc/rawtransaction.js index a1115df..cbd3dc9 100644 --- a/test/integration/chains/abc/rawtransaction.js +++ b/test/integration/chains/abc/rawtransaction.js @@ -5,13 +5,13 @@ TODO */ -const chai = require('chai') -const assert = chai.assert -const BCHJS = require('../../../../src/bch-js') -const bchjs = new BCHJS({ restURL: process.env.RESTURL }) +import chai from 'chai' +import BCHJS from '../../../../src/bch-js.js' // Inspect utility used for debugging. -const util = require('util') +import util from 'util' +const assert = chai.assert +const bchjs = new BCHJS({ restURL: process.env.RESTURL }) util.inspect.defaultOptions = { showHidden: true, colors: true, diff --git a/test/integration/chains/abc/utxo-integration.js b/test/integration/chains/abc/utxo-integration.js index 2589ede..1b3afbe 100644 --- a/test/integration/chains/abc/utxo-integration.js +++ b/test/integration/chains/abc/utxo-integration.js @@ -2,9 +2,10 @@ Integration tests for the utxo.js library. */ -const assert = require('chai').assert +import chai from 'chai' -const BCHJS = require('../../../../src/bch-js') +import BCHJS from '../../../../src/bch-js.js' +const { assert } = chai const bchjs = new BCHJS() describe('#UTXO', () => { diff --git a/test/integration/chains/bchn/dsproof.js b/test/integration/chains/bchn/dsproof.js index 6ff9632..63a4a3f 100644 --- a/test/integration/chains/bchn/dsproof.js +++ b/test/integration/chains/bchn/dsproof.js @@ -2,9 +2,10 @@ Integration tests for bchjs dsproof library. */ -const assert = require('chai').assert +import chai from 'chai' -const BCHJS = require('../../../../src/bch-js') +import BCHJS from '../../../../src/bch-js.js' +const { assert } = chai const bchjs = new BCHJS() describe('#DSProof', () => { diff --git a/test/integration/chains/bchn/psf-slp-indexer.integration.js b/test/integration/chains/bchn/psf-slp-indexer.integration.js index 893c6b7..723a860 100644 --- a/test/integration/chains/bchn/psf-slp-indexer.integration.js +++ b/test/integration/chains/bchn/psf-slp-indexer.integration.js @@ -4,10 +4,11 @@ */ // Global npm libraries -const assert = require('chai').assert +import chai from 'chai' // Local libraries -const BCHJS = require('../../../../src/bch-js') +import BCHJS from '../../../../src/bch-js.js' +const { assert } = chai let bchjs describe('#psf-slp-indexer', () => { diff --git a/test/integration/chains/bchn/rawtransaction.js b/test/integration/chains/bchn/rawtransaction.js index c2fe0d1..a7670f2 100644 --- a/test/integration/chains/bchn/rawtransaction.js +++ b/test/integration/chains/bchn/rawtransaction.js @@ -5,13 +5,13 @@ TODO */ -const chai = require('chai') -const assert = chai.assert -const BCHJS = require('../../../../src/bch-js') -const bchjs = new BCHJS() +import chai from 'chai' +import BCHJS from '../../../../src/bch-js.js' // Inspect utility used for debugging. -const util = require('util') +import util from 'util' +const assert = chai.assert +const bchjs = new BCHJS() util.inspect.defaultOptions = { showHidden: true, colors: true, diff --git a/test/integration/chains/bchn/slp.js b/test/integration/chains/bchn/slp.js index a0fd795..c668014 100644 --- a/test/integration/chains/bchn/slp.js +++ b/test/integration/chains/bchn/slp.js @@ -3,14 +3,14 @@ These tests are specific to the ABC chain. */ -const chai = require('chai') -const assert = chai.assert +import chai from 'chai' -const BCHJS = require('../../../../src/bch-js') -let bchjs +import BCHJS from '../../../../src/bch-js.js' // Inspect utility used for debugging. -const util = require('util') +import util from 'util' +const assert = chai.assert +let bchjs util.inspect.defaultOptions = { showHidden: true, colors: true, diff --git a/test/integration/chains/bchn/transaction-integration.js b/test/integration/chains/bchn/transaction-integration.js index 61b95d5..073881b 100644 --- a/test/integration/chains/bchn/transaction-integration.js +++ b/test/integration/chains/bchn/transaction-integration.js @@ -2,8 +2,9 @@ Integration tests for the transaction.js library. */ -const assert = require('chai').assert -const BCHJS = require('../../../../src/bch-js') +import chai from 'chai' +import BCHJS from '../../../../src/bch-js.js' +const { assert } = chai const bchjs = new BCHJS() describe('#Transaction', () => { diff --git a/test/integration/chains/bchn/util.js b/test/integration/chains/bchn/util.js index 18bb102..d2ff188 100644 --- a/test/integration/chains/bchn/util.js +++ b/test/integration/chains/bchn/util.js @@ -3,13 +3,13 @@ rest.bitcoin.com. */ -const chai = require('chai') -const assert = chai.assert -const BCHJS = require('../../../../src/bch-js') -const bchjs = new BCHJS() +import chai from 'chai' +import BCHJS from '../../../../src/bch-js.js' // Inspect utility used for debugging. -const util = require('util') +import util from 'util' +const assert = chai.assert +const bchjs = new BCHJS() util.inspect.defaultOptions = { showHidden: true, colors: true, diff --git a/test/integration/chains/bchn/utxo-integration.js b/test/integration/chains/bchn/utxo-integration.js index ac55615..9c90e9d 100644 --- a/test/integration/chains/bchn/utxo-integration.js +++ b/test/integration/chains/bchn/utxo-integration.js @@ -2,9 +2,10 @@ Integration tests for the utxo.js library. */ -const assert = require('chai').assert +import chai from 'chai' -const BCHJS = require('../../../../src/bch-js') +import BCHJS from '../../../../src/bch-js.js' +const { assert } = chai const bchjs = new BCHJS() // const bchjs = new BCHJS({ restURL: 'http://192.168.2.129:3000/v5/' }) diff --git a/test/integration/chains/testnet/blockchain.js b/test/integration/chains/testnet/blockchain.js index f76441a..e72d3e2 100644 --- a/test/integration/chains/testnet/blockchain.js +++ b/test/integration/chains/testnet/blockchain.js @@ -7,20 +7,20 @@ of an e2e test to be properly tested. */ -const chai = require('chai') +import chai from 'chai' +// if (process.env.RESTURL) RESTURL = process.env.RESTURL + +import BCHJS from '../../../../src/bch-js.js' + +// Inspect utility used for debugging. +import util from 'util' const assert = chai.assert const RESTURL = process.env.RESTURL ? process.env.RESTURL : 'https://testnet3.fullstack.cash/v5/' -// if (process.env.RESTURL) RESTURL = process.env.RESTURL - -const BCHJS = require('../../../../src/bch-js') // const bchjs = new BCHJS({ restURL: `https://testnet.bchjs.cash/v5/` }) const bchjs = new BCHJS({ restURL: RESTURL, apiToken: process.env.BCHJSTOKEN }) - -// Inspect utility used for debugging. -const util = require('util') util.inspect.defaultOptions = { showHidden: true, colors: true, diff --git a/test/integration/chains/testnet/control.js b/test/integration/chains/testnet/control.js index f7f1dd7..dab57b7 100644 --- a/test/integration/chains/testnet/control.js +++ b/test/integration/chains/testnet/control.js @@ -2,14 +2,14 @@ Integration tests for bchjs control library. */ -const chai = require('chai') +import chai from 'chai' + +import BCHJS from '../../../../src/bch-js.js' const assert = chai.assert const RESTURL = process.env.RESTURL ? process.env.RESTURL : 'https://testnet3.fullstack.cash/v5/' - -const BCHJS = require('../../../../src/bch-js') const bchjs = new BCHJS({ restURL: RESTURL, apiToken: process.env.BCHJSTOKEN }) describe('#control', () => { diff --git a/test/integration/chains/testnet/electrumx.js b/test/integration/chains/testnet/electrumx.js index b4e8312..2857556 100644 --- a/test/integration/chains/testnet/electrumx.js +++ b/test/integration/chains/testnet/electrumx.js @@ -1,13 +1,13 @@ -const chai = require('chai') +import chai from 'chai' +import sinon from 'sinon' +import util from 'util' + +import BCHJS from '../../../../src/bch-js.js' const assert = chai.assert -const sinon = require('sinon') -const util = require('util') const RESTURL = process.env.RESTURL ? process.env.RESTURL : 'https://testnet3.fullstack.cash/v5/' - -const BCHJS = require('../../../../src/bch-js') const bchjs = new BCHJS({ restURL: RESTURL, apiToken: process.env.BCHJSTOKEN }) describe('#ElectrumX', () => { diff --git a/test/integration/chains/testnet/rawtransaction.js b/test/integration/chains/testnet/rawtransaction.js index fb37a8d..ca88fd1 100644 --- a/test/integration/chains/testnet/rawtransaction.js +++ b/test/integration/chains/testnet/rawtransaction.js @@ -5,20 +5,20 @@ TODO */ -const chai = require('chai') +import chai from 'chai' +// if (process.env.RESTURL) RESTURL = process.env.RESTURL + +import BCHJS from '../../../../src/bch-js.js' + +// Inspect utility used for debugging. +import util from 'util' const assert = chai.assert const RESTURL = process.env.RESTURL ? process.env.RESTURL : 'https://testnet3.fullstack.cash/v5/' -// if (process.env.RESTURL) RESTURL = process.env.RESTURL - -const BCHJS = require('../../../../src/bch-js') // const bchjs = new BCHJS({ restURL: `https://testnet.bchjs.cash/v5/` }) const bchjs = new BCHJS({ restURL: RESTURL, apiToken: process.env.BCHJSTOKEN }) - -// Inspect utility used for debugging. -const util = require('util') util.inspect.defaultOptions = { showHidden: true, colors: true, diff --git a/test/integration/chains/testnet/slp.js b/test/integration/chains/testnet/slp.js index 9e339ea..4e5c925 100644 --- a/test/integration/chains/testnet/slp.js +++ b/test/integration/chains/testnet/slp.js @@ -2,20 +2,20 @@ Integration tests for the bchjs covering SLP tokens. */ -const chai = require('chai') +import chai from 'chai' +// if (process.env.RESTURL) RESTURL = process.env.RESTURL + +import BCHJS from '../../../../src/bch-js.js' + +// Inspect utility used for debugging. +import util from 'util' const assert = chai.assert const RESTURL = process.env.RESTURL ? process.env.RESTURL : 'https://testnet3.fullstack.cash/v5/' -// if (process.env.RESTURL) RESTURL = process.env.RESTURL - -const BCHJS = require('../../../../src/bch-js') // const bchjs = new BCHJS({ restURL: `https://testnet.bchjs.cash/v5/` }) const bchjs = new BCHJS({ restURL: RESTURL, apiToken: process.env.BCHJSTOKEN }) - -// Inspect utility used for debugging. -const util = require('util') util.inspect.defaultOptions = { showHidden: true, colors: true, diff --git a/test/integration/chains/testnet/util.js b/test/integration/chains/testnet/util.js index 569e9a7..330b2b4 100644 --- a/test/integration/chains/testnet/util.js +++ b/test/integration/chains/testnet/util.js @@ -3,20 +3,20 @@ rest.bitcoin.com. */ -const chai = require('chai') +import chai from 'chai' +// if (process.env.RESTURL) RESTURL = process.env.RESTURL + +import BCHJS from '../../../../src/bch-js.js' + +// Inspect utility used for debugging. +import util from 'util' const assert = chai.assert const RESTURL = process.env.RESTURL ? process.env.RESTURL : 'https://testnet3.fullstack.cash/v5/' -// if (process.env.RESTURL) RESTURL = process.env.RESTURL - -const BCHJS = require('../../../../src/bch-js') // const bchjs = new BCHJS({ restURL: `https://testnet.bchjs.cash/v5/` }) const bchjs = new BCHJS({ restURL: RESTURL, apiToken: process.env.BCHJSTOKEN }) - -// Inspect utility used for debugging. -const util = require('util') util.inspect.defaultOptions = { showHidden: true, colors: true, diff --git a/test/integration/control.js b/test/integration/control.js index e49c467..a00d599 100644 --- a/test/integration/control.js +++ b/test/integration/control.js @@ -2,9 +2,9 @@ Integration tests for bchjs control library. */ -const chai = require('chai') +import chai from 'chai' +import BCHJS from '../../src/bch-js.js' const assert = chai.assert -const BCHJS = require('../../src/bch-js') const bchjs = new BCHJS() describe('#control', () => { diff --git a/test/integration/electrumx.js b/test/integration/electrumx.js index 1c067fd..3592156 100644 --- a/test/integration/electrumx.js +++ b/test/integration/electrumx.js @@ -1,8 +1,8 @@ -const chai = require('chai') -const assert = chai.assert -const sinon = require('sinon') +import chai from 'chai' +import sinon from 'sinon' -const BCHJS = require('../../src/bch-js') +import BCHJS from '../../src/bch-js.js' +const assert = chai.assert const bchjs = new BCHJS() describe('#ElectrumX', () => { diff --git a/test/integration/price.js b/test/integration/price.js index dbbca42..c295067 100644 --- a/test/integration/price.js +++ b/test/integration/price.js @@ -1,5 +1,6 @@ -const assert = require('chai').assert -const BCHJS = require('../../src/bch-js') +import chai from 'chai' +import BCHJS from '../../src/bch-js.js' +const { assert } = chai const bchjs = new BCHJS() describe('#price', () => { diff --git a/test/integration/rawtransaction.js b/test/integration/rawtransaction.js index 49cbc4c..1de34ad 100644 --- a/test/integration/rawtransaction.js +++ b/test/integration/rawtransaction.js @@ -4,13 +4,13 @@ TODO */ -const chai = require('chai') -const assert = chai.assert -const BCHJS = require('../../src/bch-js') -const bchjs = new BCHJS() +import chai from 'chai' +import BCHJS from '../../src/bch-js.js' // Inspect utility used for debugging. -const util = require('util') +import util from 'util' +const assert = chai.assert +const bchjs = new BCHJS() util.inspect.defaultOptions = { showHidden: true, colors: true, diff --git a/test/integration/slp.js b/test/integration/slp.js index fb53308..5d7f276 100644 --- a/test/integration/slp.js +++ b/test/integration/slp.js @@ -2,14 +2,14 @@ Integration tests for the bchjs covering SLP tokens. */ -const chai = require('chai') -const assert = chai.assert +import chai from 'chai' -const BCHJS = require('../../src/bch-js') -let bchjs +import BCHJS from '../../src/bch-js.js' // Inspect utility used for debugging. -const util = require('util') +import util from 'util' +const assert = chai.assert +let bchjs util.inspect.defaultOptions = { showHidden: true, colors: true, diff --git a/test/integration/transaction-integration.js b/test/integration/transaction-integration.js index b95a296..118809a 100644 --- a/test/integration/transaction-integration.js +++ b/test/integration/transaction-integration.js @@ -2,8 +2,9 @@ Integration tests for the transaction.js library. */ -const assert = require('chai').assert -const BCHJS = require('../../src/bch-js') +import chai from 'chai' +import BCHJS from '../../src/bch-js.js' +const { assert } = chai const bchjs = new BCHJS() describe('#Transaction', () => { diff --git a/test/unit/address.js b/test/unit/address.js index 198d45c..c06d4c3 100644 --- a/test/unit/address.js +++ b/test/unit/address.js @@ -1,12 +1,15 @@ // Public npm libraries. -const assert = require('assert') -const Bitcoin = require('@psf/bitcoincashjs-lib') +import assert from 'assert' +// import { assert } from 'chai' +import Bitcoin from '@psf/bitcoincashjs-lib' // Mocks -const fixtures = require('./fixtures/address.json') +/* eslint-disable */ +import fixtures from './fixtures/address.json' with { type: 'json' } +/* eslint-enable */ // Unit under test (uut) -const BCHJS = require('../../src/bch-js') +import BCHJS from '../../src/bch-js.js' let bchjs function flatten (arrays) { diff --git a/test/unit/bitcoin-cash.js b/test/unit/bitcoin-cash.js index 47c68d9..cf9c8dc 100644 --- a/test/unit/bitcoin-cash.js +++ b/test/unit/bitcoin-cash.js @@ -1,11 +1,13 @@ // Public npm libraries -const assert = require('assert') +import assert from 'assert' // Mocks -const fixtures = require('./fixtures/bitcoincash.json') +/* eslint-disable */ +import fixtures from './fixtures/bitcoincash.json' with { type: 'json' } +/* eslint-enable */ // Unit under test (uut) -const BCHJS = require('../../src/bch-js') +import BCHJS from '../../src/bch-js.js' // const bchjs = new BCHJS() let bchjs diff --git a/test/unit/blockchain.js b/test/unit/blockchain.js index 66cbf81..d6dd8e4 100644 --- a/test/unit/blockchain.js +++ b/test/unit/blockchain.js @@ -1,11 +1,12 @@ -const assert = require('assert') -const assert2 = require('chai').assert -const axios = require('axios') -const BCHJS = require('../../src/bch-js') -const bchjs = new BCHJS() -const sinon = require('sinon') +import assert from 'assert' +import chai from 'chai' +import axios from 'axios' +import BCHJS from '../../src/bch-js.js' +import sinon from 'sinon' -const mockData = require('./fixtures/blockchain-mock') +import mockData from './fixtures/blockchain-mock.js' +const { assert: assert2 } = chai +const bchjs = new BCHJS() describe('#Blockchain', () => { describe('#getBestBlockHash', () => { diff --git a/test/unit/control.js b/test/unit/control.js index bbe557e..66a2b37 100644 --- a/test/unit/control.js +++ b/test/unit/control.js @@ -1,8 +1,8 @@ -const assert = require('assert') -const axios = require('axios') -const BCHJS = require('../../src/bch-js') +import assert from 'assert' +import axios from 'axios' +import BCHJS from '../../src/bch-js.js' +import sinon from 'sinon' const bchjs = new BCHJS() -const sinon = require('sinon') describe('#Control', () => { let sandbox diff --git a/test/unit/crypto.js b/test/unit/crypto.js index 1d08ebd..2306741 100644 --- a/test/unit/crypto.js +++ b/test/unit/crypto.js @@ -1,8 +1,10 @@ -const fixtures = require('./fixtures/crypto.json') -const assert = require('assert') -const BCHJS = require('../../src/bch-js') +/* eslint-disable */ +import fixtures from './fixtures/crypto.json' with { type: 'json' } +/* eslint-enable */ +import assert from 'assert' +import BCHJS from '../../src/bch-js.js' const bchjs = new BCHJS() -const Buffer = require('safe-buffer').Buffer +import { Buffer } from 'safe-buffer' describe('#Crypto', () => { describe('#sha256', () => { diff --git a/test/unit/dsproof.js b/test/unit/dsproof.js index 2cbfc97..57c1ef9 100644 --- a/test/unit/dsproof.js +++ b/test/unit/dsproof.js @@ -1,10 +1,11 @@ // Public npm libraries -const assert = require('chai').assert -const sinon = require('sinon') +import chai from 'chai' +import sinon from 'sinon' // Unit under test (uut) -const BCHJS = require('../../src/bch-js') -const mockData = require('./fixtures/dsproof-mock') +import BCHJS from '../../src/bch-js.js' +import mockData from './fixtures/dsproof-mock.js' +const { assert } = chai let bchjs const txid = 'ee0df780b58f6f24467605b2589c44c3a50fc849fb8f91b89669a4ae0d86bc7e' diff --git a/test/unit/ecash.js b/test/unit/ecash.js index 43299c3..d62040d 100644 --- a/test/unit/ecash.js +++ b/test/unit/ecash.js @@ -3,8 +3,9 @@ */ // Global npm libraries -const assert = require('chai').assert -const Ecash = require('../../src/ecash') +import chai from 'chai' +import Ecash from '../../src/ecash.js' +const { assert } = chai const uut = new Ecash() describe('#eCash', () => { diff --git a/test/unit/ecpairs.js b/test/unit/ecpairs.js index f543073..106b7c1 100644 --- a/test/unit/ecpairs.js +++ b/test/unit/ecpairs.js @@ -1,12 +1,14 @@ // Public npm libraries. -const assert = require('assert') -const Buffer = require('safe-buffer').Buffer +import assert from 'assert' +import { Buffer } from 'safe-buffer' // Mocks -const fixtures = require('./fixtures/ecpair.json') +/* eslint-disable */ +import fixtures from './fixtures/ecpair.json' with { type: 'json' } +/* eslint-enable */ // Unit under test (uut) -const BCHJS = require('../../src/bch-js') +import BCHJS from '../../src/bch-js.js' // const bchjs = new BCHJS() let bchjs diff --git a/test/unit/electrumx.js b/test/unit/electrumx.js index 6da9721..840ef3e 100644 --- a/test/unit/electrumx.js +++ b/test/unit/electrumx.js @@ -1,13 +1,13 @@ -const chai = require('chai') +import chai from 'chai' +import axios from 'axios' +import sinon from 'sinon' + +import BCHJS from '../../src/bch-js.js' + +import mockData from './fixtures/electrumx-mock.js' const assert = chai.assert -const axios = require('axios') -const sinon = require('sinon') - -const BCHJS = require('../../src/bch-js') const bchjs = new BCHJS() -const mockData = require('./fixtures/electrumx-mock') - describe('#ElectrumX', () => { let sandbox beforeEach(() => (sandbox = sinon.createSandbox())) diff --git a/test/unit/encryption.js b/test/unit/encryption.js index 6945ae7..bb26e65 100644 --- a/test/unit/encryption.js +++ b/test/unit/encryption.js @@ -1,12 +1,13 @@ -const assert = require('chai').assert -const sinon = require('sinon') +import chai from 'chai' +import sinon from 'sinon' -const BCHJS = require('../../src/bch-js') +import BCHJS from '../../src/bch-js.js' + +import mockData from './fixtures/encryption-mock.js' +const { assert } = chai // const bchjs = new BCHJS() let bchjs -const mockData = require('./fixtures/encryption-mock') - describe('#Encryption', () => { let sandbox diff --git a/test/unit/fixtures/bitcore-mock.js b/test/unit/fixtures/bitcore-mock.js index b4e6770..e58362c 100644 --- a/test/unit/fixtures/bitcore-mock.js +++ b/test/unit/fixtures/bitcore-mock.js @@ -39,7 +39,7 @@ const utxo = [ } ] -module.exports = { +export default { balance, utxo } diff --git a/test/unit/fixtures/block-mock.js b/test/unit/fixtures/block-mock.js index 4f053b3..7fb48e6 100644 --- a/test/unit/fixtures/block-mock.js +++ b/test/unit/fixtures/block-mock.js @@ -2,7 +2,7 @@ Mock data used for unit testing. */ -module.exports = { +export default { details: { hash: '000000001c6aeec19265e9cc3ded8ba5ef5e63fae7747f30bf9c02c7bc8883f0', size: 216, diff --git a/test/unit/fixtures/blockchain-mock.js b/test/unit/fixtures/blockchain-mock.js index 9bbba2c..aa3fefb 100644 --- a/test/unit/fixtures/blockchain-mock.js +++ b/test/unit/fixtures/blockchain-mock.js @@ -2,7 +2,7 @@ Mock data used for unit testing. */ -module.exports = { +export default { bestBlockHash: '0000000000000000008e1f65f875703872544aa888c7ca6587f055f8f5fbd4bf', diff --git a/test/unit/fixtures/dsproof-mock.js b/test/unit/fixtures/dsproof-mock.js index 526a760..ee13cc8 100644 --- a/test/unit/fixtures/dsproof-mock.js +++ b/test/unit/fixtures/dsproof-mock.js @@ -14,6 +14,6 @@ const dsproof = { ] } -module.exports = { +export default { dsproof } diff --git a/test/unit/fixtures/electrumx-mock.js b/test/unit/fixtures/electrumx-mock.js index bf98c64..b9f15bf 100644 --- a/test/unit/fixtures/electrumx-mock.js +++ b/test/unit/fixtures/electrumx-mock.js @@ -290,7 +290,7 @@ const txHistoryWithUnconfirmed = { ] } -module.exports = { +export default { utxo, utxos, balance, diff --git a/test/unit/fixtures/encryption-mock.js b/test/unit/fixtures/encryption-mock.js index ff888f8..a8eb7e7 100644 --- a/test/unit/fixtures/encryption-mock.js +++ b/test/unit/fixtures/encryption-mock.js @@ -13,7 +13,7 @@ const failureMock = { publicKey: 'not found' } -module.exports = { +export default { successMock, failureMock } diff --git a/test/unit/fixtures/ipfs-mock.js b/test/unit/fixtures/ipfs-mock.js index fece65a..58040c3 100644 --- a/test/unit/fixtures/ipfs-mock.js +++ b/test/unit/fixtures/ipfs-mock.js @@ -118,7 +118,7 @@ const paidFileData = { } } -module.exports = { +export default { uploadData, paymentInfo, mockNewFileModel, diff --git a/test/unit/fixtures/openbazaar-mock.js b/test/unit/fixtures/openbazaar-mock.js index 099f8fb..154210f 100644 --- a/test/unit/fixtures/openbazaar-mock.js +++ b/test/unit/fixtures/openbazaar-mock.js @@ -77,7 +77,7 @@ const tx = { '0200000001ac1e2e38764f9b81f3ff4317b4bd1a381dbdf311277a736f375d4ce217d3095f010000006a473044022000dd11c41a472f2e54348db996e60864d489429f12d1e044d49ff600b880c9590220715a926404bb0e2731a3795afb341ec1dad3f84ead7d27cd31fcc59abb14738c4121038476128287ac37c7a3cf7e8625fd5f024db1bc3d8e37395abe7bf42fda78d0d9ffffffff02e8030000000000001976a9142fe2c4c5ef359bb2fe1a849f891cecffbcfb4f7788acb0b40000000000001976a9142dbf5e1804c39a497b908c876097d63210c8490288ac00000000' } -module.exports = { +export default { balance, utxo, tx diff --git a/test/unit/fixtures/price-mocks.js b/test/unit/fixtures/price-mocks.js index c8168ec..f22ed22 100644 --- a/test/unit/fixtures/price-mocks.js +++ b/test/unit/fixtures/price-mocks.js @@ -209,6 +209,6 @@ const mockRates = { ZWL: '80215.03' } -module.exports = { +export default { mockRates } diff --git a/test/unit/fixtures/psf-slp-indexer-mock.js b/test/unit/fixtures/psf-slp-indexer-mock.js index 84b0920..0af9cc1 100644 --- a/test/unit/fixtures/psf-slp-indexer-mock.js +++ b/test/unit/fixtures/psf-slp-indexer-mock.js @@ -203,7 +203,7 @@ const tokenMedia01 = { ps002Compatible: true } -module.exports = { +export default { tokenStats, txData, balance, diff --git a/test/unit/fixtures/rawtransaction-mock.js b/test/unit/fixtures/rawtransaction-mock.js index e844de2..ba16080 100644 --- a/test/unit/fixtures/rawtransaction-mock.js +++ b/test/unit/fixtures/rawtransaction-mock.js @@ -55,7 +55,7 @@ const mockGetInputAddrsOutput = [ } ] -module.exports = { +export default { mockTx, mockParentTx1, mockGetInputAddrsOutput diff --git a/test/unit/fixtures/slp/mock-utils.js b/test/unit/fixtures/slp/mock-utils.js index 36e2c2d..fa92854 100644 --- a/test/unit/fixtures/slp/mock-utils.js +++ b/test/unit/fixtures/slp/mock-utils.js @@ -1411,7 +1411,7 @@ mock503Error.response = { } } -module.exports = { +export default { mockList, mockToken, mockTokens, diff --git a/test/unit/fixtures/transaction-mock.js b/test/unit/fixtures/transaction-mock.js index fa2523c..27d9d78 100644 --- a/test/unit/fixtures/transaction-mock.js +++ b/test/unit/fixtures/transaction-mock.js @@ -769,7 +769,7 @@ const genesisTestOpReturn03 = { qty: '100000000000000000' } -module.exports = { +export default { nonSlpTxDetails, slpTxDetails, mockOpReturnData01, diff --git a/test/unit/fixtures/utxo-mocks.js b/test/unit/fixtures/utxo-mocks.js index 6d8d3e6..177967b 100644 --- a/test/unit/fixtures/utxo-mocks.js +++ b/test/unit/fixtures/utxo-mocks.js @@ -476,7 +476,7 @@ const noUtxoErr = { 'Key not found in database [bitcoincash:qp3sn6vlwz28ntmf3wmyra7jqttfx7z6zgtkygjhc7]' } -module.exports = { +export default { mockUtxoData, mockHydratedUtxos, mockTwoHydratedAddrs, diff --git a/test/unit/generating.js b/test/unit/generating.js index 27f8142..141f2fc 100644 --- a/test/unit/generating.js +++ b/test/unit/generating.js @@ -1,10 +1,10 @@ // Public npm libraries -const assert = require('assert') -const axios = require('axios') -const sinon = require('sinon') +import assert from 'assert' +import axios from 'axios' +import sinon from 'sinon' // Unit under test (uut) -const BCHJS = require('../../src/bch-js') +import BCHJS from '../../src/bch-js.js' // const bchjs = new BCHJS() let bchjs diff --git a/test/unit/hdnode.js b/test/unit/hdnode.js index 0c14d02..fbabb34 100644 --- a/test/unit/hdnode.js +++ b/test/unit/hdnode.js @@ -1,13 +1,15 @@ // Public npm libraries -const assert = require('assert') -const Buffer = require('safe-buffer').Buffer +import assert from 'assert' +import { Buffer } from 'safe-buffer' // Mocks -const fixtures = require('./fixtures/hdnode.json') -// const slpFixtures = require('./fixtures/slp/address.json') +/* eslint-disable */ +import fixtures from './fixtures/hdnode.json' with { type: 'json' } +/* eslint-enable */ +// import slpFixtures from './fixtures/slp/address.json' with { type: 'json' } // Unit under test (uut) -const BCHJS = require('../../src/bch-js') +import BCHJS from '../../src/bch-js.js' let bchjs describe('#HDNode', () => { diff --git a/test/unit/mining.js b/test/unit/mining.js index d75a785..5293104 100644 --- a/test/unit/mining.js +++ b/test/unit/mining.js @@ -1,10 +1,10 @@ // Public npm libraries -const assert = require('assert') -const axios = require('axios') -const sinon = require('sinon') +import assert from 'assert' +import axios from 'axios' +import sinon from 'sinon' // Unit under test (uut) -const BCHJS = require('../../src/bch-js') +import BCHJS from '../../src/bch-js.js' let bchjs describe('#Mining', () => { diff --git a/test/unit/mnemonic.js b/test/unit/mnemonic.js index 8a2f0eb..4632ade 100644 --- a/test/unit/mnemonic.js +++ b/test/unit/mnemonic.js @@ -1,6 +1,8 @@ -const fixtures = require('./fixtures/mnemonic.json') -const assert = require('assert') -const BCHJS = require('../../src/bch-js') +/* eslint-disable */ +import fixtures from './fixtures/mnemonic.json' with { type: 'json' } +/* eslint-enable */ +import assert from 'assert' +import BCHJS from '../../src/bch-js.js' const bchjs = new BCHJS() describe('#Mnemonic', () => { diff --git a/test/unit/price.js b/test/unit/price.js index fc06b98..18f043c 100644 --- a/test/unit/price.js +++ b/test/unit/price.js @@ -1,8 +1,9 @@ -const assert = require('chai').assert -const BCHJS = require('../../src/bch-js') -const sinon = require('sinon') +import chai from 'chai' +import BCHJS from '../../src/bch-js.js' +import sinon from 'sinon' -const mockDataLib = require('./fixtures/price-mocks') +import mockDataLib from './fixtures/price-mocks.js' +const { assert } = chai let mockData describe('#price', () => { diff --git a/test/unit/psf-slp-indexer.js b/test/unit/psf-slp-indexer.js index 161c669..d552b42 100644 --- a/test/unit/psf-slp-indexer.js +++ b/test/unit/psf-slp-indexer.js @@ -1,13 +1,13 @@ -const chai = require('chai') +import chai from 'chai' +import axios from 'axios' +import sinon from 'sinon' + +import BCHJS from '../../src/bch-js.js' + +import mockData from './fixtures/psf-slp-indexer-mock.js' const assert = chai.assert -const axios = require('axios') -const sinon = require('sinon') - -const BCHJS = require('../../src/bch-js') const bchjs = new BCHJS() -const mockData = require('./fixtures/psf-slp-indexer-mock') - describe('#PsfSlpIndexer', () => { let sandbox beforeEach(() => (sandbox = sinon.createSandbox())) diff --git a/test/unit/raw-tranactions.js b/test/unit/raw-tranactions.js index 8101565..c4f4a6f 100644 --- a/test/unit/raw-tranactions.js +++ b/test/unit/raw-tranactions.js @@ -3,22 +3,23 @@ */ // Public npm libraries -const assert = require('assert') -const assert2 = require('chai').assert -const axios = require('axios') -const sinon = require('sinon') -// const nock = require("nock") // HTTP mocking +import assert from 'assert' +import chai from 'chai' +import axios from 'axios' +import sinon from 'sinon' +// import nock from "nock" // HTTP mocking // Unit under test (uut) -const BCHJS = require('../../src/bch-js') -// const bchjs = new BCHJS() -let bchjs +import BCHJS from '../../src/bch-js.js' // Used for debugging // const util = require("util") // util.inspect.defaultOptions = { depth: 1 } -const mockData = require('./fixtures/rawtransaction-mock') +import mockData from './fixtures/rawtransaction-mock.js' +const { assert: assert2 } = chai +// const bchjs = new BCHJS() +let bchjs describe('#RawTransactions', () => { let sandbox diff --git a/test/unit/scripts.js b/test/unit/scripts.js index 02172ce..efa099c 100644 --- a/test/unit/scripts.js +++ b/test/unit/scripts.js @@ -1,12 +1,14 @@ // Public npm libraries -const assert = require('assert') -const Buffer = require('safe-buffer').Buffer +import assert from 'assert' +import { Buffer } from 'safe-buffer' // Mocks -const fixtures = require('./fixtures/script.json') +/* eslint-disable */ +import fixtures from './fixtures/script.json' with { type: 'json' } +/* eslint-enable */ // Unit under test (uut) -const BCHJS = require('../../src/bch-js') +import BCHJS from '../../src/bch-js.js' let bchjs describe('#Script', () => { diff --git a/test/unit/slp-address.js b/test/unit/slp-address.js index 96cf6da..55e7ce0 100644 --- a/test/unit/slp-address.js +++ b/test/unit/slp-address.js @@ -1,11 +1,13 @@ -const assert = require('assert') +import assert from 'assert' -const BCHJS = require('../../src/bch-js') -// const SLP = require("../../src/slp/slp") +import BCHJS from '../../src/bch-js.js' +// import SLP from "../../src/slp/slp.js" // const SLP = new slp({ restURL: "http://fakeurl.com/" }) let slp -const fixtures = require('./fixtures/slp/address.json') +/* eslint-disable */ +import fixtures from './fixtures/slp/address.json' with { type: 'json' } +/* eslint-enable */ // const axios = require("axios") // const sinon = require("sinon") diff --git a/test/unit/slp-ecpair.js b/test/unit/slp-ecpair.js index 2bcbafd..43939b8 100644 --- a/test/unit/slp-ecpair.js +++ b/test/unit/slp-ecpair.js @@ -1,8 +1,10 @@ -const assert = require('assert') +import assert from 'assert' -const fixtures = require('./fixtures/slp/ecpair.json') +/* eslint-disable */ +import fixtures from './fixtures/slp/ecpair.json' with { type: 'json' } +/* eslint-enable */ -const BCHJS = require('../../src/bch-js') +import BCHJS from '../../src/bch-js.js' let slp // const SLP = require("../../src/slp/slp") diff --git a/test/unit/slp-nft1.js b/test/unit/slp-nft1.js index 332aaf2..312904a 100644 --- a/test/unit/slp-nft1.js +++ b/test/unit/slp-nft1.js @@ -2,15 +2,16 @@ Unit tests for the TokenType1 library. */ -const assert = require('chai').assert -const sinon = require('sinon') -// const axios = require('axios') +import chai from 'chai' +import sinon from 'sinon' +// const SERVER = bchjs.restURL + +import BCHJS from '../../src/bch-js.js' +const { assert } = chai +// import axios from 'axios' // Default to unit tests unless some other value for TEST is passed. if (!process.env.TEST) process.env.TEST = 'unit' -// const SERVER = bchjs.restURL - -const BCHJS = require('../../src/bch-js') const bchjs = new BCHJS() // Mock data used for unit tests diff --git a/test/unit/slp-tokentype1.js b/test/unit/slp-tokentype1.js index 2dc3e74..a3431de 100644 --- a/test/unit/slp-tokentype1.js +++ b/test/unit/slp-tokentype1.js @@ -2,15 +2,16 @@ Unit tests for the TokenType1 library. */ -const assert = require('chai').assert -const sinon = require('sinon') -// const axios = require("axios") +import chai from 'chai' +import sinon from 'sinon' +// const SERVER = bchjs.restURL + +import BCHJS from '../../src/bch-js.js' +const { assert } = chai +// import axios from "axios" // Default to unit tests unless some other value for TEST is passed. if (!process.env.TEST) process.env.TEST = 'unit' -// const SERVER = bchjs.restURL - -const BCHJS = require('../../src/bch-js') const bchjs = new BCHJS() // Mock data used for unit tests diff --git a/test/unit/slp-utils.js b/test/unit/slp-utils.js index 00f4b3c..dd1fd74 100644 --- a/test/unit/slp-utils.js +++ b/test/unit/slp-utils.js @@ -1,19 +1,20 @@ // Public npm libraries -const assert = require('chai').assert -const sinon = require('sinon') -const cloneDeep = require('lodash.clonedeep') +import chai from 'chai' +import sinon from 'sinon' +import cloneDeep from 'lodash.clonedeep' // Unit under test -const SLP = require('../../src/slp/slp') +import SLP from '../../src/slp/slp.js' + +// Mock data used for unit tests +import mockDataLib from './fixtures/slp/mock-utils.js' +const { assert } = chai let uut // let SERVER const REST_URL = process.env.RESTURL ? process.env.RESTURL : 'https://bchn.fullstack.cash/v5/' - -// Mock data used for unit tests -const mockDataLib = require('./fixtures/slp/mock-utils') let mockData // Default to unit tests unless some other value for TEST is passed. diff --git a/test/unit/transaction-builder.js b/test/unit/transaction-builder.js index 74b970b..f6fc62a 100644 --- a/test/unit/transaction-builder.js +++ b/test/unit/transaction-builder.js @@ -1,9 +1,12 @@ -const fixtures = require('./fixtures/transaction-builder.json') -const assert = require('assert') -const assert2 = require('chai').assert -const BCHJS = require('../../src/bch-js') +/* eslint-disable */ +import fixtures from './fixtures/transaction-builder.json' with { type: 'json' } +/* eslint-enable */ +import assert from 'assert' +import chai from 'chai' +const { assert: assert2 } = chai +import BCHJS from '../../src/bch-js.js' const bchjs = new BCHJS() -const Buffer = require('safe-buffer').Buffer +import { Buffer } from 'safe-buffer' describe('#TransactionBuilder', () => { describe('#hashTypes', () => { diff --git a/test/unit/transaction-unit.js b/test/unit/transaction-unit.js index 3cd135f..c842c09 100644 --- a/test/unit/transaction-unit.js +++ b/test/unit/transaction-unit.js @@ -3,11 +3,12 @@ */ // Public npm libraries -const assert = require('chai').assert -const sinon = require('sinon') -// const cloneDeep = require('lodash.clonedeep') +import chai from 'chai' +import sinon from 'sinon' +// import cloneDeep from 'lodash.clonedeep' -const BCHJS = require('../../src/bch-js') +import BCHJS from '../../src/bch-js.js' +const { assert } = chai const bchjs = new BCHJS() // const mockDataLib = require('./fixtures/transaction-mock.js') diff --git a/test/unit/util.js b/test/unit/util.js index f40b4c6..674c535 100644 --- a/test/unit/util.js +++ b/test/unit/util.js @@ -1,9 +1,10 @@ -const assert = require('assert') -const assert2 = require('chai').assert -const axios = require('axios') -const BCHJS = require('../../src/bch-js') +import assert from 'assert' +import chai from 'chai' +import axios from 'axios' +import BCHJS from '../../src/bch-js.js' +import sinon from 'sinon' +const { assert: assert2 } = chai const bchjs = new BCHJS() -const sinon = require('sinon') describe('#Util', () => { describe('#validateAddress', () => { diff --git a/test/unit/utxo-unit.js b/test/unit/utxo-unit.js index 93ac548..b65d312 100644 --- a/test/unit/utxo-unit.js +++ b/test/unit/utxo-unit.js @@ -2,14 +2,15 @@ Unit tests for the utxo.js library. */ -const sinon = require('sinon') -const assert = require('chai').assert +import sinon from 'sinon' +import chai from 'chai' -const BCHJS = require('../../src/bch-js') +import BCHJS from '../../src/bch-js.js' + +import mockData from './fixtures/utxo-mocks.js' +const { assert } = chai const bchjs = new BCHJS() -const mockData = require('./fixtures/utxo-mocks') - describe('#utxo', () => { let sandbox beforeEach(() => (sandbox = sinon.createSandbox()))