Compare commits

...
11 Commits
16 changed files with 155 additions and 156 deletions
+1 -1
View File
@@ -116,5 +116,5 @@ export default {
chatPubSubChan: 'psf-ipfs-chat-001',
// IPFS gateway
ipfsGateway: process.env.IPFS_GATEWAY ? process.env.IPFS_GATEWAY : 'https://p2wdb-gateway.fullstack.cash/ipfs/'
ipfsGateway: process.env.IPFS_GATEWAY ? process.env.IPFS_GATEWAY : 'https://p2wdb-gateway-678.fullstack.cash/ipfs/'
}
+115 -128
View File
@@ -10,6 +10,7 @@
"license": "MIT",
"dependencies": {
"@chris.troutner/retry-queue": "1.0.8",
"@psf/bch-js": "6.5.1",
"axios": "0.27.2",
"bch-message-lib": "2.2.1",
"bcryptjs": "2.4.3",
@@ -33,11 +34,11 @@
"koa2-ratelimit": "0.9.1",
"libp2p": "0.36.2",
"line-reader": "0.4.0",
"minimal-slp-wallet": "5.2.1",
"minimal-slp-wallet": "5.4.3",
"mongoose": "5.13.14",
"node-fetch": "npm:@achingbrain/node-fetch@2.6.7",
"nodemailer": "6.7.5",
"p2wdb": "2.2.3",
"p2wdb-esm": "2.2.7",
"passport-local": "1.0.0",
"public-ip": "4.0.4",
"winston": "3.3.3",
@@ -57,6 +58,30 @@
"uuid": "8.3.2"
}
},
"../p2wdb": {
"version": "2.0.0",
"extraneous": true,
"license": "MIT",
"dependencies": {
"@chris.troutner/retry-queue-commonjs": "1.0.8",
"apidoc": "0.52.0",
"axios": "0.24.0"
},
"devDependencies": {
"browserify": "17.0.0",
"chai": "4.2.0",
"coveralls": "3.1.0",
"husky": "4.3.8",
"lodash.clonedeep": "4.5.0",
"minimal-slp-wallet": "5.2.1",
"mocha": "^10.0.0",
"nyc": "15.1.0",
"semantic-release": "19.0.5",
"sinon": "9.2.2",
"standard": "16.0.4",
"tinyify": "3.0.0"
}
},
"node_modules/@babel/code-frame": {
"version": "7.18.6",
"dev": true,
@@ -180,6 +205,31 @@
"p-retry": "5.1.1"
}
},
"node_modules/@chris.troutner/retry-queue-commonjs": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/@chris.troutner/retry-queue-commonjs/-/retry-queue-commonjs-1.0.8.tgz",
"integrity": "sha512-jEHmCKffjIXTm0d/YcRQzCDPbzW2NFTEO72b1vmETnmATO57MmO39F37gEaq7J7lnF5JMxuM3Oq+FWa1L7HXxA==",
"dependencies": {
"p-queue": "4.0.0",
"p-retry": "4.6.2"
}
},
"node_modules/@chris.troutner/retry-queue-commonjs/node_modules/eventemitter3": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz",
"integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q=="
},
"node_modules/@chris.troutner/retry-queue-commonjs/node_modules/p-queue": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/p-queue/-/p-queue-4.0.0.tgz",
"integrity": "sha512-3cRXXn3/O0o3+eVmUroJPSj/esxoEFIm0ZOno/T+NzG/VZgPOqQ8WKmlNqubSEpZmCIngEy34unkHGg83ZIBmg==",
"dependencies": {
"eventemitter3": "^3.1.0"
},
"engines": {
"node": ">=6"
}
},
"node_modules/@chris.troutner/retry-queue/node_modules/@types/retry": {
"version": "0.12.1",
"resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz",
@@ -1045,9 +1095,9 @@
"license": "BSD-3-Clause"
},
"node_modules/@psf/bch-js": {
"version": "6.4.5",
"resolved": "https://registry.npmjs.org/@psf/bch-js/-/bch-js-6.4.5.tgz",
"integrity": "sha512-sH72zbJJI5oe9EUMczFQb0jCaNQb8rc3/86E6xXKl3325HCwBqE80BX7JFvZ97Qv1gGxwp/3WROp59v6Dz2NKA==",
"version": "6.5.1",
"resolved": "https://registry.npmjs.org/@psf/bch-js/-/bch-js-6.5.1.tgz",
"integrity": "sha512-W52V6NCte/LJZ2TMJwXorq2FdwMMzjS94sh4slebrcUp6oHiAG+/NouQ4ID/I1DEJQlQnQpf2j3zxveCimDERQ==",
"dependencies": {
"@chris.troutner/bip32-utils": "1.0.5",
"@psf/bip21": "2.0.1",
@@ -2053,11 +2103,11 @@
}
},
"node_modules/bch-consumer": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/bch-consumer/-/bch-consumer-1.3.1.tgz",
"integrity": "sha512-8ZoyFp4pLJFAOzM482K22sVL2FpuxhkYRtZuLLsMH9L442mRABjsAP7fTh91W5er40r8RGN/CSKi2TMyUmrY1Q==",
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/bch-consumer/-/bch-consumer-1.4.0.tgz",
"integrity": "sha512-olftYKtCgT+81fnEL0iSArmeRANw1SZjSwwYsZV7t9CJZjtMXBSXJDCaQoAzUAXNRMtICB3uxAKD1MWuBznZuw==",
"dependencies": {
"@psf/bch-js": "6.4.5",
"@psf/bch-js": "6.5.1",
"apidoc": "0.51.0",
"axios": "0.25.0"
}
@@ -8018,13 +8068,13 @@
}
},
"node_modules/minimal-slp-wallet": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/minimal-slp-wallet/-/minimal-slp-wallet-5.2.1.tgz",
"integrity": "sha512-1m71QxFlSdrfk01BOF0tQCgyTp8SCvvZST8bBOMZTz+iPwerDTbpPk4p3Niv12socT7QIaSf8odSVdFDjyqB8w==",
"version": "5.4.3",
"resolved": "https://registry.npmjs.org/minimal-slp-wallet/-/minimal-slp-wallet-5.4.3.tgz",
"integrity": "sha512-l9shPcWUHJhmHa6iJs917XNVQR0jaLHgww0fC78ubRokW0Zhea2jO9FNJLi74T8Nd8StCg1pVAlS+MKszU3swQ==",
"dependencies": {
"@psf/bch-js": "6.4.5",
"@psf/bch-js": "6.5.1",
"apidoc": "0.51.0",
"bch-consumer": "1.3.1",
"bch-consumer": "1.4.0",
"bch-donation": "1.1.2",
"crypto-js": "4.0.0"
}
@@ -11814,78 +11864,23 @@
"node": ">=4"
}
},
"node_modules/p2wdb": {
"version": "2.2.3",
"license": "MIT",
"node_modules/p2wdb-esm": {
"version": "2.2.7",
"resolved": "https://registry.npmjs.org/p2wdb-esm/-/p2wdb-esm-2.2.7.tgz",
"integrity": "sha512-528nGjthkkAf8n4H7jSX52pCpsprKgRfZKB4emIYHkOFo9rHYOOZMLlbRkluYtAThjVxJd7w3fyplZFPEXzlyA==",
"dependencies": {
"apidoc": "0.52.0",
"@chris.troutner/retry-queue-commonjs": "1.0.8",
"axios": "0.24.0"
}
},
"node_modules/p2wdb/node_modules/apidoc": {
"version": "0.52.0",
"license": "MIT",
"os": [
"darwin",
"freebsd",
"linux",
"openbsd",
"win32"
],
"dependencies": {
"bootstrap": "3.4.1",
"commander": "^8.3.0",
"diff-match-patch": "^1.0.5",
"esbuild-loader": "^2.16.0",
"expose-loader": "^3.1.0",
"fs-extra": "^10.0.0",
"glob": "^7.2.0",
"handlebars": "^4.7.7",
"iconv-lite": "^0.6.3",
"jquery": "^3.6.0",
"klaw-sync": "^6.0.0",
"lodash": "^4.17.21",
"markdown-it": "^12.2.0",
"nodemon": "^2.0.15",
"prismjs": "^1.25.0",
"semver": "^7.3.5",
"style-loader": "^3.3.1",
"webpack": "^5.64.2",
"webpack-cli": "^4.9.1",
"winston": "^3.3.3"
},
"bin": {
"apidoc": "bin/apidoc"
},
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/p2wdb/node_modules/axios": {
"node_modules/p2wdb-esm/node_modules/axios": {
"version": "0.24.0",
"license": "MIT",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz",
"integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==",
"dependencies": {
"follow-redirects": "^1.14.4"
}
},
"node_modules/p2wdb/node_modules/glob": {
"version": "7.2.3",
"license": "ISC",
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.1.1",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
},
"engines": {
"node": "*"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/package-json": {
"version": "6.5.0",
"license": "MIT",
@@ -15785,6 +15780,30 @@
}
}
},
"@chris.troutner/retry-queue-commonjs": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/@chris.troutner/retry-queue-commonjs/-/retry-queue-commonjs-1.0.8.tgz",
"integrity": "sha512-jEHmCKffjIXTm0d/YcRQzCDPbzW2NFTEO72b1vmETnmATO57MmO39F37gEaq7J7lnF5JMxuM3Oq+FWa1L7HXxA==",
"requires": {
"p-queue": "4.0.0",
"p-retry": "4.6.2"
},
"dependencies": {
"eventemitter3": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz",
"integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q=="
},
"p-queue": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/p-queue/-/p-queue-4.0.0.tgz",
"integrity": "sha512-3cRXXn3/O0o3+eVmUroJPSj/esxoEFIm0ZOno/T+NzG/VZgPOqQ8WKmlNqubSEpZmCIngEy34unkHGg83ZIBmg==",
"requires": {
"eventemitter3": "^3.1.0"
}
}
}
},
"@colors/colors": {
"version": "1.5.0"
},
@@ -16375,9 +16394,9 @@
"version": "1.1.0"
},
"@psf/bch-js": {
"version": "6.4.5",
"resolved": "https://registry.npmjs.org/@psf/bch-js/-/bch-js-6.4.5.tgz",
"integrity": "sha512-sH72zbJJI5oe9EUMczFQb0jCaNQb8rc3/86E6xXKl3325HCwBqE80BX7JFvZ97Qv1gGxwp/3WROp59v6Dz2NKA==",
"version": "6.5.1",
"resolved": "https://registry.npmjs.org/@psf/bch-js/-/bch-js-6.5.1.tgz",
"integrity": "sha512-W52V6NCte/LJZ2TMJwXorq2FdwMMzjS94sh4slebrcUp6oHiAG+/NouQ4ID/I1DEJQlQnQpf2j3zxveCimDERQ==",
"requires": {
"@chris.troutner/bip32-utils": "1.0.5",
"@psf/bip21": "2.0.1",
@@ -17090,11 +17109,11 @@
"integrity": "sha512-GzaMlN7pNthrY5BhReVhnfr4Ixx+GUSfyNRHYh0QiMUF0d0+0YaD8MpEdv6AjFBksg/zlqL1fVCBBm6PpTt2Rg=="
},
"bch-consumer": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/bch-consumer/-/bch-consumer-1.3.1.tgz",
"integrity": "sha512-8ZoyFp4pLJFAOzM482K22sVL2FpuxhkYRtZuLLsMH9L442mRABjsAP7fTh91W5er40r8RGN/CSKi2TMyUmrY1Q==",
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/bch-consumer/-/bch-consumer-1.4.0.tgz",
"integrity": "sha512-olftYKtCgT+81fnEL0iSArmeRANw1SZjSwwYsZV7t9CJZjtMXBSXJDCaQoAzUAXNRMtICB3uxAKD1MWuBznZuw==",
"requires": {
"@psf/bch-js": "6.4.5",
"@psf/bch-js": "6.5.1",
"apidoc": "0.51.0",
"axios": "0.25.0"
},
@@ -21060,13 +21079,13 @@
"dev": true
},
"minimal-slp-wallet": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/minimal-slp-wallet/-/minimal-slp-wallet-5.2.1.tgz",
"integrity": "sha512-1m71QxFlSdrfk01BOF0tQCgyTp8SCvvZST8bBOMZTz+iPwerDTbpPk4p3Niv12socT7QIaSf8odSVdFDjyqB8w==",
"version": "5.4.3",
"resolved": "https://registry.npmjs.org/minimal-slp-wallet/-/minimal-slp-wallet-5.4.3.tgz",
"integrity": "sha512-l9shPcWUHJhmHa6iJs917XNVQR0jaLHgww0fC78ubRokW0Zhea2jO9FNJLi74T8Nd8StCg1pVAlS+MKszU3swQ==",
"requires": {
"@psf/bch-js": "6.4.5",
"@psf/bch-js": "6.5.1",
"apidoc": "0.51.0",
"bch-consumer": "1.3.1",
"bch-consumer": "1.4.0",
"bch-donation": "1.1.2",
"crypto-js": "4.0.0"
},
@@ -23606,54 +23625,22 @@
"version": "1.0.0",
"dev": true
},
"p2wdb": {
"version": "2.2.3",
"p2wdb-esm": {
"version": "2.2.7",
"resolved": "https://registry.npmjs.org/p2wdb-esm/-/p2wdb-esm-2.2.7.tgz",
"integrity": "sha512-528nGjthkkAf8n4H7jSX52pCpsprKgRfZKB4emIYHkOFo9rHYOOZMLlbRkluYtAThjVxJd7w3fyplZFPEXzlyA==",
"requires": {
"apidoc": "0.52.0",
"@chris.troutner/retry-queue-commonjs": "1.0.8",
"axios": "0.24.0"
},
"dependencies": {
"apidoc": {
"version": "0.52.0",
"requires": {
"bootstrap": "3.4.1",
"commander": "^8.3.0",
"diff-match-patch": "^1.0.5",
"esbuild-loader": "^2.16.0",
"expose-loader": "^3.1.0",
"fs-extra": "^10.0.0",
"glob": "^7.2.0",
"handlebars": "^4.7.7",
"iconv-lite": "^0.6.3",
"jquery": "^3.6.0",
"klaw-sync": "^6.0.0",
"lodash": "^4.17.21",
"markdown-it": "^12.2.0",
"nodemon": "^2.0.15",
"prismjs": "^1.25.0",
"semver": "^7.3.5",
"style-loader": "^3.3.1",
"webpack": "^5.64.2",
"webpack-cli": "^4.9.1",
"winston": "^3.3.3"
}
},
"axios": {
"version": "0.24.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz",
"integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==",
"requires": {
"follow-redirects": "^1.14.4"
}
},
"glob": {
"version": "7.2.3",
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.1.1",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
}
}
}
},
+3 -2
View File
@@ -29,6 +29,7 @@
"repository": "Permissionless-Software-Foundation/bch-dex",
"dependencies": {
"@chris.troutner/retry-queue": "1.0.8",
"@psf/bch-js": "6.5.1",
"axios": "0.27.2",
"bch-message-lib": "2.2.1",
"bcryptjs": "2.4.3",
@@ -52,11 +53,11 @@
"koa2-ratelimit": "0.9.1",
"libp2p": "0.36.2",
"line-reader": "0.4.0",
"minimal-slp-wallet": "5.2.1",
"minimal-slp-wallet": "5.4.3",
"mongoose": "5.13.14",
"node-fetch": "npm:@achingbrain/node-fetch@2.6.7",
"nodemailer": "6.7.5",
"p2wdb": "2.2.3",
"p2wdb-esm": "2.2.7",
"passport-local": "1.0.0",
"public-ip": "4.0.4",
"winston": "3.3.3",
+4 -1
View File
@@ -72,7 +72,10 @@ RUN npm run docs
#EXPOSE 5010
# Start the application.
#COPY start-production.sh start-production.sh
CMD ["./start-production.sh"]
#CMD ["npm", "start"]
# Used for debugging
#COPY dummy-app.js dummy-app.js
#CMD ["node", "dummy-app.js"]
+4
View File
@@ -0,0 +1,4 @@
setInterval(function () {
const now = new Date()
console.log(`timestamp: ${now.toLocaleString()}`)
}, 5000)
@@ -24,7 +24,7 @@ export DBURL=mongodb://172.17.0.1:5666/bch-swap-service-prod
export PORT=5700
# bch-dex specific env vars
export BCH_DEX=production
export BCH_DEX=prod
export WEBHOOKSERVICE=http://172.17.0.1:5667/webhook
export WEBHOOKTARGET=http://172.17.0.1:5700/p2wdb
export APP_ID=bch-dex-001
+8 -8
View File
@@ -70,10 +70,10 @@ services:
restart: always
bch-dex:
#build:
# context: ./bch-dex/
# dockerfile: Dockerfile
image: christroutner/bch-dex:v2.0.8
build:
context: ./bch-dex/
dockerfile: Dockerfile
#image: christroutner/bch-dex:v2.0.8
container_name: bch-dex
environment:
CONSUMER_URL: 'https://free-bch.fullstack.cash'
@@ -94,10 +94,10 @@ services:
restart: always
dex-ui:
#build:
# context: ./bch-dex-ui/
# dockerfile: Dockerfile
image: christroutner/bch-dex-ui:v1.2.4
build:
context: ./bch-dex-ui/
dockerfile: Dockerfile
#image: christroutner/bch-dex-ui:v1.2.4
container_name: dex-ui
environment:
SERVER: 'http://192.168.2.3'
+4 -4
View File
@@ -3,7 +3,7 @@
*/
// Public NPM libraries
import BchWallet from 'minimal-slp-wallet/index'
import BchWallet from 'minimal-slp-wallet'
import { promises as fs } from 'fs'
@@ -16,9 +16,9 @@ async function createWallet () {
}
// Wait for the wallet to be created.
this.bchWallet = new BchWallet(undefined, advancedConfig)
await this.bchWallet.walletInfoPromise
const walletData = this.bchWallet.walletInfo
const bchWallet = new BchWallet(undefined, advancedConfig)
await bchWallet.walletInfoPromise
const walletData = bchWallet.walletInfo
walletData.nextAddress = 1
// Save the wallet file to disk.
+1 -1
View File
@@ -5,7 +5,7 @@
*/
// Global npm libraries
import BchWallet from 'minimal-slp-wallet/index.js'
import BchWallet from 'minimal-slp-wallet'
// Local libraries
import WalletAdapter from '../../src/adapters/wallet.js'
+1 -1
View File
@@ -6,7 +6,7 @@
import BCHJS from '@psf/bch-js'
import MsgLib from 'bch-message-lib'
import BchWallet from 'minimal-slp-wallet/index.js'
import BchWallet from 'minimal-slp-wallet'
class Bch {
constructor () {
+1 -1
View File
@@ -8,7 +8,7 @@
import IpfsCoord from 'ipfs-coord-esm'
// import BCHJS from '@psf/bch-js';
import SlpWallet from 'minimal-slp-wallet/index.js'
import SlpWallet from 'minimal-slp-wallet'
import publicIp from 'public-ip'
// Local libraries
+2 -1
View File
@@ -5,10 +5,11 @@
// Public npm libraries.
import axios from 'axios'
import { Write, Read } from 'p2wdb/index.js'
import P2WDB from 'p2wdb-esm'
// Local libraries
import config from '../../config/index.js'
const { Write, Read } = P2WDB
class P2wdbAdapter {
constructor (localConfig = {}) {
+1 -1
View File
@@ -3,7 +3,7 @@
*/
// Public npm libraries
import BchWallet from 'minimal-slp-wallet/index.js'
import BchWallet from 'minimal-slp-wallet'
import bitcoinJs from 'bitcoincashjs-lib'
+5 -4
View File
@@ -306,7 +306,7 @@ class OfferUseCases {
console.log(`utxos: ${JSON.stringify(utxos, null, 2)}`)
// Calculate amount of sats to generate a counter offer.
let satsToMove = offerInfo.numTokens * parseInt(offerInfo.rateInBaseUnit)
let satsToMove = Math.ceil(offerInfo.numTokens * parseInt(offerInfo.rateInBaseUnit))
if (isNaN(satsToMove)) {
throw new Error('Could not calculate the amount of BCH to generate counter offer')
}
@@ -385,7 +385,7 @@ class OfferUseCases {
// Sell Offer
// Calculate the sats needed
const satsNeeded = offerEntity.numTokens * parseInt(offerEntity.rateInBaseUnit)
const satsNeeded = Math.ceil(offerEntity.numTokens * parseInt(offerEntity.rateInBaseUnit))
if (isNaN(satsNeeded)) {
throw new Error('Could not calculate sats needed!')
}
@@ -467,7 +467,7 @@ class OfferUseCases {
console.log(`txObj: ${JSON.stringify(txObj, null, 2)}`)
// Ensure the 3rd output (vout=2) contains the required amount of BCH.
const satsToReceive = orderData.numTokens * parseInt(orderData.rateInBaseUnit)
const satsToReceive = Math.ceil(orderData.numTokens * parseInt(orderData.rateInBaseUnit))
if (isNaN(satsToReceive)) {
throw new Error('Could not calculate the amount of BCH offered in the Counter Offer')
}
@@ -579,7 +579,8 @@ class OfferUseCases {
}
// If the Offer UTXO is spent, delete the Offer model.
if (!utxoStatus) {
if (utxoStatus === false) {
console.log('utxoStatus: ', utxoStatus)
console.log(`Spent UTXO detected. Deleting this Offer: ${JSON.stringify(thisOffer, null, 2)}`)
await thisOffer.remove()
}
+3 -1
View File
@@ -115,6 +115,7 @@ class OrderLib {
// Update the wallet balance
await this.adapters.wallet.bchWallet.getUtxos()
// console.log(`wallet UTXOs: ${JSON.stringify(this.adapters.wallet.bchWallet.utxos.utxoStore, null, 2)}`)
// Ensure the app wallet has enough funds to write to the P2WDB.
const wif = this.adapters.wallet.bchWallet.walletInfo.privateKey
@@ -234,7 +235,8 @@ class OrderLib {
}
// If the Order UTXO is spent, delete the Order model.
if (!utxoStatus) {
if (utxoStatus === false) {
console.log('utxoStatus: ', utxoStatus)
console.log(`Spent UTXO detected. Deleting this Order: ${JSON.stringify(thisOrder, null, 2)}`)
await thisOrder.remove()
}
+1 -1
View File
@@ -8,7 +8,7 @@ import { assert } from 'chai'
import sinon from 'sinon'
// const BCHJS = require('@psf/bch-js')
import BchWallet from 'minimal-slp-wallet/index.js'
import BchWallet from 'minimal-slp-wallet'
// Local libraries.
import P2wdbAdapter from '../../../src/adapters/p2wdb-adapter.js'