fix(bch-dex-lib): Added lib and required polyfills

This commit is contained in:
Chris Troutner
2025-02-07 11:28:08 -07:00
parent d88d12d486
commit f064c7900e
6 changed files with 885 additions and 12 deletions
+18
View File
@@ -0,0 +1,18 @@
const webpack = require('webpack');
module.exports = function override(config) {
config.resolve.fallback = {
...config.resolve.fallback,
crypto: require.resolve('crypto-browserify'),
stream: require.resolve('stream-browserify'),
vm: require.resolve('vm-browserify'),
};
config.plugins = (config.plugins || []).concat([
new webpack.ProvidePlugin({
process: 'process/browser',
}),
]);
return config;
};
+741 -4
View File
@@ -1,11 +1,11 @@
{
"name": "bch-wallet-web3-spa",
"name": "bch-dex-taker-v2",
"version": "1.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "bch-wallet-web3-spa",
"name": "bch-dex-taker-v2",
"version": "1.0.0",
"dependencies": {
"@chris.troutner/react-jdenticon": "1.0.1",
@@ -14,8 +14,11 @@
"@fortawesome/free-solid-svg-icons": "6.7.2",
"@fortawesome/react-fontawesome": "0.2.2",
"axios": "0.27.2",
"bch-dex-lib": "2.0.2",
"bch-message-lib": "2.2.1",
"bootstrap": "5.2.0",
"crypto-browserify": "3.12.1",
"process": "^0.11.10",
"qrcode.react": "4.2.0",
"query-string": "7.1.1",
"react": "19.0.0",
@@ -23,11 +26,14 @@
"react-dom": "19.0.0",
"react-router-dom": "7.1.3",
"react-scripts": "5.0.1",
"stream-browserify": "^3.0.0",
"use-local-storage-state": "19.5.0",
"use-query-params": "1.2.3"
"use-query-params": "1.2.3",
"vm-browserify": "1.1.2"
},
"devDependencies": {
"minimal-slp-wallet": "5.8.5",
"react-app-rewired": "^2.2.1",
"standard": "17.0.0",
"web3.storage": "4.3.0"
}
@@ -1770,6 +1776,23 @@
"node": ">=10.15.1"
}
},
"node_modules/@chris.troutner/nostr-tools": {
"version": "2.10.4",
"resolved": "http://94.130.170.209:4873/@chris.troutner%2fnostr-tools/-/nostr-tools-2.10.4.tgz",
"integrity": "sha512-e8AYJ0yQ0O3bvnuXQUIdB+P3W7f06st+TXfmbpd6U7IpJ5jWhczoLGvF0NiCgKB6YHTaTGx4hoRLF2A744PzmQ==",
"license": "Unlicense",
"dependencies": {
"@noble/ciphers": "^0.5.1",
"@noble/curves": "1.2.0",
"@noble/hashes": "1.3.1",
"@scure/base": "1.1.1",
"@scure/bip32": "1.3.1",
"@scure/bip39": "1.2.1"
},
"optionalDependencies": {
"nostr-wasm": "0.1.0"
}
},
"node_modules/@chris.troutner/react-jdenticon": {
"version": "1.0.1",
"resolved": "http://94.130.170.209:4873/@chris.troutner%2freact-jdenticon/-/react-jdenticon-1.0.1.tgz",
@@ -1783,6 +1806,16 @@
"react": ">= 18"
}
},
"node_modules/@chris.troutner/retry-queue": {
"version": "1.0.10",
"resolved": "http://94.130.170.209:4873/@chris.troutner%2fretry-queue/-/retry-queue-1.0.10.tgz",
"integrity": "sha512-iF+xQl3jyTATAKDVkwY85j4Npihh/MqG99bjrS0cNJDF0XQeUSMVGsdtXR6TFj8YcEgfPvgBdYGOtEFo6tTQpA==",
"license": "MIT",
"dependencies": {
"p-queue": "7.3.0",
"p-retry": "5.1.1"
}
},
"node_modules/@chris.troutner/retry-queue-commonjs": {
"version": "1.0.8",
"license": "MIT",
@@ -1791,6 +1824,44 @@
"p-retry": "4.6.2"
}
},
"node_modules/@chris.troutner/retry-queue/node_modules/@types/retry": {
"version": "0.12.1",
"resolved": "http://94.130.170.209:4873/@types%2fretry/-/retry-0.12.1.tgz",
"integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==",
"license": "MIT"
},
"node_modules/@chris.troutner/retry-queue/node_modules/p-queue": {
"version": "7.3.0",
"resolved": "http://94.130.170.209:4873/p-queue/-/p-queue-7.3.0.tgz",
"integrity": "sha512-5fP+yVQ0qp0rEfZoDTlP2c3RYBgxvRsw30qO+VtPPc95lyvSG+x6USSh1TuLB4n96IO6I8/oXQGsTgtna4q2nQ==",
"license": "MIT",
"dependencies": {
"eventemitter3": "^4.0.7",
"p-timeout": "^5.0.2"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@chris.troutner/retry-queue/node_modules/p-retry": {
"version": "5.1.1",
"resolved": "http://94.130.170.209:4873/p-retry/-/p-retry-5.1.1.tgz",
"integrity": "sha512-i69WkEU5ZAL8mrmdmVviWwU+DN+IUF8f4sSJThoJ3z5A7Nn5iuO5ROX3Boye0u+uYQLOSfgFl7SuFZCjlAVbQA==",
"license": "MIT",
"dependencies": {
"@types/retry": "0.12.1",
"retry": "^0.13.1"
},
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@colors/colors": {
"version": "1.5.0",
"license": "MIT",
@@ -2849,6 +2920,39 @@
"murmurhash3js-revisited": "^3.0.0"
}
},
"node_modules/@noble/ciphers": {
"version": "0.5.3",
"resolved": "http://94.130.170.209:4873/@noble%2fciphers/-/ciphers-0.5.3.tgz",
"integrity": "sha512-B0+6IIHiqEs3BPMT0hcRmHvEj2QHOLu+uwt+tqDDeVd0oyVzh7BPrDcPjRnV1PV/5LaknXJJQvOuRGR0zQJz+w==",
"license": "MIT",
"funding": {
"url": "https://paulmillr.com/funding/"
}
},
"node_modules/@noble/curves": {
"version": "1.2.0",
"resolved": "http://94.130.170.209:4873/@noble%2fcurves/-/curves-1.2.0.tgz",
"integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==",
"license": "MIT",
"dependencies": {
"@noble/hashes": "1.3.2"
},
"funding": {
"url": "https://paulmillr.com/funding/"
}
},
"node_modules/@noble/curves/node_modules/@noble/hashes": {
"version": "1.3.2",
"resolved": "http://94.130.170.209:4873/@noble%2fhashes/-/hashes-1.3.2.tgz",
"integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==",
"license": "MIT",
"engines": {
"node": ">= 16"
},
"funding": {
"url": "https://paulmillr.com/funding/"
}
},
"node_modules/@noble/ed25519": {
"version": "1.6.0",
"dev": true,
@@ -2860,6 +2964,18 @@
],
"license": "MIT"
},
"node_modules/@noble/hashes": {
"version": "1.3.1",
"resolved": "http://94.130.170.209:4873/@noble%2fhashes/-/hashes-1.3.1.tgz",
"integrity": "sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA==",
"license": "MIT",
"engines": {
"node": ">= 16"
},
"funding": {
"url": "https://paulmillr.com/funding/"
}
},
"node_modules/@noble/secp256k1": {
"version": "1.6.0",
"dev": true,
@@ -3235,6 +3351,57 @@
"version": "1.1.3",
"license": "MIT"
},
"node_modules/@scure/base": {
"version": "1.1.1",
"resolved": "http://94.130.170.209:4873/@scure%2fbase/-/base-1.1.1.tgz",
"integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==",
"funding": [
{
"type": "individual",
"url": "https://paulmillr.com/funding/"
}
],
"license": "MIT"
},
"node_modules/@scure/bip32": {
"version": "1.3.1",
"resolved": "http://94.130.170.209:4873/@scure%2fbip32/-/bip32-1.3.1.tgz",
"integrity": "sha512-osvveYtyzdEVbt3OfwwXFr4P2iVBL5u1Q3q4ONBfDY/UpOuXmOlbgwc1xECEboY8wIays8Yt6onaWMUdUbfl0A==",
"license": "MIT",
"dependencies": {
"@noble/curves": "~1.1.0",
"@noble/hashes": "~1.3.1",
"@scure/base": "~1.1.0"
},
"funding": {
"url": "https://paulmillr.com/funding/"
}
},
"node_modules/@scure/bip32/node_modules/@noble/curves": {
"version": "1.1.0",
"resolved": "http://94.130.170.209:4873/@noble%2fcurves/-/curves-1.1.0.tgz",
"integrity": "sha512-091oBExgENk/kGj3AZmtBDMpxQPDtxQABR2B9lb1JbVTs6ytdzZNwvhxQ4MWasRNEzlbEH8jCWFCwhF/Obj5AA==",
"license": "MIT",
"dependencies": {
"@noble/hashes": "1.3.1"
},
"funding": {
"url": "https://paulmillr.com/funding/"
}
},
"node_modules/@scure/bip39": {
"version": "1.2.1",
"resolved": "http://94.130.170.209:4873/@scure%2fbip39/-/bip39-1.2.1.tgz",
"integrity": "sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==",
"license": "MIT",
"dependencies": {
"@noble/hashes": "~1.3.0",
"@scure/base": "~1.1.0"
},
"funding": {
"url": "https://paulmillr.com/funding/"
}
},
"node_modules/@sinclair/typebox": {
"version": "0.23.5",
"license": "MIT"
@@ -4603,6 +4770,17 @@
"version": "2.0.6",
"license": "MIT"
},
"node_modules/asn1.js": {
"version": "4.10.1",
"resolved": "http://94.130.170.209:4873/asn1.js/-/asn1.js-4.10.1.tgz",
"integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==",
"license": "MIT",
"dependencies": {
"bn.js": "^4.0.0",
"inherits": "^2.0.1",
"minimalistic-assert": "^1.0.0"
}
},
"node_modules/ast-types-flow": {
"version": "0.0.7",
"license": "ISC"
@@ -4971,6 +5149,15 @@
"safe-buffer": "^5.0.1"
}
},
"node_modules/base58-js": {
"version": "2.0.0",
"resolved": "http://94.130.170.209:4873/base58-js/-/base58-js-2.0.0.tgz",
"integrity": "sha512-nAV5d32QXuGcGptSApkKpC1gGakWBnfJMNjKrYTBh4tb0szfZF+ooueFLy8T4VrY+o4SrE/TyrtUnRZcwZchaA==",
"license": "MIT",
"engines": {
"node": ">= 8"
}
},
"node_modules/base64-js": {
"version": "1.5.1",
"dev": true,
@@ -5017,6 +5204,16 @@
"follow-redirects": "^1.14.7"
}
},
"node_modules/bch-dex-lib": {
"version": "2.0.2",
"resolved": "http://94.130.170.209:4873/bch-dex-lib/-/bch-dex-lib-2.0.2.tgz",
"integrity": "sha512-x639TqYjRucvFrWzr9PMWN5Jdj2+lJkk1m4LC9Zlfm0QNe1PLD4WqyqH1dxMUdA/L9TVpPq1V/HbAiiQZmjV6Q==",
"license": "MIT",
"dependencies": {
"@chris.troutner/retry-queue": "1.0.10",
"bch-nostr": "1.3.4"
}
},
"node_modules/bch-donation": {
"version": "1.1.2",
"license": "MIT",
@@ -5031,6 +5228,100 @@
"minimal-slp-wallet": ">= 4"
}
},
"node_modules/bch-nostr": {
"version": "1.3.4",
"resolved": "http://94.130.170.209:4873/bch-nostr/-/bch-nostr-1.3.4.tgz",
"integrity": "sha512-5R6PtZsP1F+oDs7+sZ5d+DeM3XNhr+3QsyHmTbFdoyNcb3w0vFN3KYNvaXpfPYBUDncXPJBNSR5GOstEDRSCgg==",
"license": "MIT",
"dependencies": {
"@chris.troutner/nostr-tools": "2.10.4",
"apidoc": "0.53.0",
"base58-js": "2.0.0",
"bch-message-lib": "2.3.1",
"nostr": "0.2.8",
"ws": "8.18.0"
}
},
"node_modules/bch-nostr/node_modules/apidoc": {
"version": "0.53.0",
"resolved": "http://94.130.170.209:4873/apidoc/-/apidoc-0.53.0.tgz",
"integrity": "sha512-H4hYToCrI6TgSksdVHxS7h5/Xoqr/rR9m9/IOQaYqXbX07cPVbg0O3RM4+bR4tJKG1aqBWKKm+xojQ8+4i7O5A==",
"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/bch-nostr/node_modules/bch-message-lib": {
"version": "2.3.1",
"resolved": "http://94.130.170.209:4873/bch-message-lib/-/bch-message-lib-2.3.1.tgz",
"integrity": "sha512-xAWMRvmcP2mYTdp9KgjSQfxlJF4DTloCJrjGx0TumD3HPF9mmYZ/CiCGUAFdQk3LBCavnK0AZi9v3+JTNSnrcA==",
"license": "MIT",
"peerDependencies": {
"minimal-slp-wallet": ">= 5"
}
},
"node_modules/bch-nostr/node_modules/bootstrap": {
"version": "3.4.1",
"resolved": "http://94.130.170.209:4873/bootstrap/-/bootstrap-3.4.1.tgz",
"integrity": "sha512-yN5oZVmRCwe5aKwzRj6736nSmKDX7pLYwsXiCj/EYmo16hODaBiT4En5btW/jhBF/seV+XMx3aYwukYC3A49DA==",
"license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/bch-nostr/node_modules/ws": {
"version": "8.18.0",
"resolved": "http://94.130.170.209:4873/ws/-/ws-8.18.0.tgz",
"integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==",
"license": "MIT",
"engines": {
"node": ">=10.0.0"
},
"peerDependencies": {
"bufferutil": "^4.0.1",
"utf-8-validate": ">=5.0.2"
},
"peerDependenciesMeta": {
"bufferutil": {
"optional": true
},
"utf-8-validate": {
"optional": true
}
}
},
"node_modules/bchaddrjs-slp": {
"version": "0.2.5",
"license": "MIT",
@@ -5322,6 +5613,165 @@
"safe-buffer": "^5.0.1"
}
},
"node_modules/browserify-cipher": {
"version": "1.0.1",
"resolved": "http://94.130.170.209:4873/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
"integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
"license": "MIT",
"dependencies": {
"browserify-aes": "^1.0.4",
"browserify-des": "^1.0.0",
"evp_bytestokey": "^1.0.0"
}
},
"node_modules/browserify-des": {
"version": "1.0.2",
"resolved": "http://94.130.170.209:4873/browserify-des/-/browserify-des-1.0.2.tgz",
"integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
"license": "MIT",
"dependencies": {
"cipher-base": "^1.0.1",
"des.js": "^1.0.0",
"inherits": "^2.0.1",
"safe-buffer": "^5.1.2"
}
},
"node_modules/browserify-rsa": {
"version": "4.1.1",
"resolved": "http://94.130.170.209:4873/browserify-rsa/-/browserify-rsa-4.1.1.tgz",
"integrity": "sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==",
"license": "MIT",
"dependencies": {
"bn.js": "^5.2.1",
"randombytes": "^2.1.0",
"safe-buffer": "^5.2.1"
},
"engines": {
"node": ">= 0.10"
}
},
"node_modules/browserify-rsa/node_modules/bn.js": {
"version": "5.2.1",
"resolved": "http://94.130.170.209:4873/bn.js/-/bn.js-5.2.1.tgz",
"integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==",
"license": "MIT"
},
"node_modules/browserify-rsa/node_modules/safe-buffer": {
"version": "5.2.1",
"resolved": "http://94.130.170.209:4873/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
],
"license": "MIT"
},
"node_modules/browserify-sign": {
"version": "4.2.3",
"resolved": "http://94.130.170.209:4873/browserify-sign/-/browserify-sign-4.2.3.tgz",
"integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==",
"license": "ISC",
"dependencies": {
"bn.js": "^5.2.1",
"browserify-rsa": "^4.1.0",
"create-hash": "^1.2.0",
"create-hmac": "^1.1.7",
"elliptic": "^6.5.5",
"hash-base": "~3.0",
"inherits": "^2.0.4",
"parse-asn1": "^5.1.7",
"readable-stream": "^2.3.8",
"safe-buffer": "^5.2.1"
},
"engines": {
"node": ">= 0.12"
}
},
"node_modules/browserify-sign/node_modules/bn.js": {
"version": "5.2.1",
"resolved": "http://94.130.170.209:4873/bn.js/-/bn.js-5.2.1.tgz",
"integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==",
"license": "MIT"
},
"node_modules/browserify-sign/node_modules/hash-base": {
"version": "3.0.5",
"resolved": "http://94.130.170.209:4873/hash-base/-/hash-base-3.0.5.tgz",
"integrity": "sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==",
"license": "MIT",
"dependencies": {
"inherits": "^2.0.4",
"safe-buffer": "^5.2.1"
},
"engines": {
"node": ">= 0.10"
}
},
"node_modules/browserify-sign/node_modules/readable-stream": {
"version": "2.3.8",
"resolved": "http://94.130.170.209:4873/readable-stream/-/readable-stream-2.3.8.tgz",
"integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
"license": "MIT",
"dependencies": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
"isarray": "~1.0.0",
"process-nextick-args": "~2.0.0",
"safe-buffer": "~5.1.1",
"string_decoder": "~1.1.1",
"util-deprecate": "~1.0.1"
}
},
"node_modules/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer": {
"version": "5.1.2",
"resolved": "http://94.130.170.209:4873/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
"license": "MIT"
},
"node_modules/browserify-sign/node_modules/safe-buffer": {
"version": "5.2.1",
"resolved": "http://94.130.170.209:4873/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
],
"license": "MIT"
},
"node_modules/browserify-sign/node_modules/string_decoder": {
"version": "1.1.1",
"resolved": "http://94.130.170.209:4873/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"license": "MIT",
"dependencies": {
"safe-buffer": "~5.1.0"
}
},
"node_modules/browserify-sign/node_modules/string_decoder/node_modules/safe-buffer": {
"version": "5.1.2",
"resolved": "http://94.130.170.209:4873/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
"license": "MIT"
},
"node_modules/browserslist": {
"version": "4.20.4",
"funding": [
@@ -5979,6 +6429,16 @@
"node": ">=10"
}
},
"node_modules/create-ecdh": {
"version": "4.0.4",
"resolved": "http://94.130.170.209:4873/create-ecdh/-/create-ecdh-4.0.4.tgz",
"integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==",
"license": "MIT",
"dependencies": {
"bn.js": "^4.1.0",
"elliptic": "^6.5.3"
}
},
"node_modules/create-hash": {
"version": "1.2.0",
"license": "MIT",
@@ -6014,6 +6474,65 @@
"node": ">= 8"
}
},
"node_modules/crypto-browserify": {
"version": "3.12.1",
"resolved": "http://94.130.170.209:4873/crypto-browserify/-/crypto-browserify-3.12.1.tgz",
"integrity": "sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==",
"license": "MIT",
"dependencies": {
"browserify-cipher": "^1.0.1",
"browserify-sign": "^4.2.3",
"create-ecdh": "^4.0.4",
"create-hash": "^1.2.0",
"create-hmac": "^1.1.7",
"diffie-hellman": "^5.0.3",
"hash-base": "~3.0.4",
"inherits": "^2.0.4",
"pbkdf2": "^3.1.2",
"public-encrypt": "^4.0.3",
"randombytes": "^2.1.0",
"randomfill": "^1.0.4"
},
"engines": {
"node": ">= 0.10"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/crypto-browserify/node_modules/hash-base": {
"version": "3.0.5",
"resolved": "http://94.130.170.209:4873/hash-base/-/hash-base-3.0.5.tgz",
"integrity": "sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==",
"license": "MIT",
"dependencies": {
"inherits": "^2.0.4",
"safe-buffer": "^5.2.1"
},
"engines": {
"node": ">= 0.10"
}
},
"node_modules/crypto-browserify/node_modules/safe-buffer": {
"version": "5.2.1",
"resolved": "http://94.130.170.209:4873/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
],
"license": "MIT"
},
"node_modules/crypto-js": {
"version": "4.0.0",
"license": "MIT"
@@ -6562,6 +7081,16 @@
"node": ">=6"
}
},
"node_modules/des.js": {
"version": "1.1.0",
"resolved": "http://94.130.170.209:4873/des.js/-/des.js-1.1.0.tgz",
"integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==",
"license": "MIT",
"dependencies": {
"inherits": "^2.0.1",
"minimalistic-assert": "^1.0.0"
}
},
"node_modules/destroy": {
"version": "1.2.0",
"license": "MIT",
@@ -6637,6 +7166,17 @@
"node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
"node_modules/diffie-hellman": {
"version": "5.0.3",
"resolved": "http://94.130.170.209:4873/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
"integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
"license": "MIT",
"dependencies": {
"bn.js": "^4.1.0",
"miller-rabin": "^4.0.0",
"randombytes": "^2.0.0"
}
},
"node_modules/dir-glob": {
"version": "3.0.1",
"license": "MIT",
@@ -6864,7 +7404,9 @@
"license": "ISC"
},
"node_modules/elliptic": {
"version": "6.5.4",
"version": "6.6.1",
"resolved": "http://94.130.170.209:4873/elliptic/-/elliptic-6.6.1.tgz",
"integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==",
"license": "MIT",
"dependencies": {
"bn.js": "^4.11.9",
@@ -12606,6 +13148,19 @@
"node": ">=8.6"
}
},
"node_modules/miller-rabin": {
"version": "4.0.1",
"resolved": "http://94.130.170.209:4873/miller-rabin/-/miller-rabin-4.0.1.tgz",
"integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
"license": "MIT",
"dependencies": {
"bn.js": "^4.0.0",
"brorand": "^1.0.1"
},
"bin": {
"miller-rabin": "bin/miller-rabin"
}
},
"node_modules/mime": {
"version": "1.6.0",
"license": "MIT",
@@ -12894,6 +13449,13 @@
"tslib": "^2.0.3"
}
},
"node_modules/noble-secp256k1": {
"version": "1.2.14",
"resolved": "http://94.130.170.209:4873/noble-secp256k1/-/noble-secp256k1-1.2.14.tgz",
"integrity": "sha512-GSCXyoZBUaaPwVWdYncMEmzlSUjF9J/YeEHpklYJCyg8wPuJP3NzDx0BkiwArzINkdX2HJHvUJhL6vVWPOQQcg==",
"deprecated": "Switch to namespaced @noble/secp256k1 for security and feature updates",
"license": "MIT"
},
"node_modules/node-addon-api": {
"version": "2.0.2",
"license": "MIT"
@@ -13022,6 +13584,44 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/nostr": {
"version": "0.2.8",
"resolved": "http://94.130.170.209:4873/nostr/-/nostr-0.2.8.tgz",
"integrity": "sha512-p25OQiEB5x8rWWoWLRRbxtxQiaQgypaQQakSKw5+cp/SW0DXea/soMzqmTXei1I6HrcARuyfvedGTdoEU471Ow==",
"license": "MIT",
"dependencies": {
"noble-secp256k1": "^1.2.14",
"ws": "^8.8.1"
}
},
"node_modules/nostr-wasm": {
"version": "0.1.0",
"resolved": "http://94.130.170.209:4873/nostr-wasm/-/nostr-wasm-0.1.0.tgz",
"integrity": "sha512-78BTryCLcLYv96ONU8Ws3Q1JzjlAt+43pWQhIl86xZmWeegYCNLPml7yQ+gG3vR6V5h4XGj+TxO+SS5dsThQIA==",
"license": "MIT",
"optional": true
},
"node_modules/nostr/node_modules/ws": {
"version": "8.18.0",
"resolved": "http://94.130.170.209:4873/ws/-/ws-8.18.0.tgz",
"integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==",
"license": "MIT",
"engines": {
"node": ">=10.0.0"
},
"peerDependencies": {
"bufferutil": "^4.0.1",
"utf-8-validate": ">=5.0.2"
},
"peerDependenciesMeta": {
"bufferutil": {
"optional": true
},
"utf-8-validate": {
"optional": true
}
}
},
"node_modules/npm-run-path": {
"version": "4.0.1",
"license": "MIT",
@@ -13319,6 +13919,18 @@
"node": ">=8"
}
},
"node_modules/p-timeout": {
"version": "5.1.0",
"resolved": "http://94.130.170.209:4873/p-timeout/-/p-timeout-5.1.0.tgz",
"integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==",
"license": "MIT",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/p-try": {
"version": "2.2.0",
"license": "MIT",
@@ -13344,6 +13956,56 @@
"node": ">=6"
}
},
"node_modules/parse-asn1": {
"version": "5.1.7",
"resolved": "http://94.130.170.209:4873/parse-asn1/-/parse-asn1-5.1.7.tgz",
"integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==",
"license": "ISC",
"dependencies": {
"asn1.js": "^4.10.1",
"browserify-aes": "^1.2.0",
"evp_bytestokey": "^1.0.3",
"hash-base": "~3.0",
"pbkdf2": "^3.1.2",
"safe-buffer": "^5.2.1"
},
"engines": {
"node": ">= 0.10"
}
},
"node_modules/parse-asn1/node_modules/hash-base": {
"version": "3.0.5",
"resolved": "http://94.130.170.209:4873/hash-base/-/hash-base-3.0.5.tgz",
"integrity": "sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==",
"license": "MIT",
"dependencies": {
"inherits": "^2.0.4",
"safe-buffer": "^5.2.1"
},
"engines": {
"node": ">= 0.10"
}
},
"node_modules/parse-asn1/node_modules/safe-buffer": {
"version": "5.2.1",
"resolved": "http://94.130.170.209:4873/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
],
"license": "MIT"
},
"node_modules/parse-duration": {
"version": "1.0.2",
"dev": true,
@@ -14781,6 +15443,15 @@
"node": ">=6"
}
},
"node_modules/process": {
"version": "0.11.10",
"resolved": "http://94.130.170.209:4873/process/-/process-0.11.10.tgz",
"integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
"license": "MIT",
"engines": {
"node": ">= 0.6.0"
}
},
"node_modules/process-nextick-args": {
"version": "2.0.1",
"license": "MIT"
@@ -14874,6 +15545,20 @@
"version": "1.1.8",
"license": "MIT"
},
"node_modules/public-encrypt": {
"version": "4.0.3",
"resolved": "http://94.130.170.209:4873/public-encrypt/-/public-encrypt-4.0.3.tgz",
"integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
"license": "MIT",
"dependencies": {
"bn.js": "^4.1.0",
"browserify-rsa": "^4.0.0",
"create-hash": "^1.1.0",
"parse-asn1": "^5.0.0",
"randombytes": "^2.0.1",
"safe-buffer": "^5.1.2"
}
},
"node_modules/punycode": {
"version": "2.1.1",
"license": "MIT",
@@ -14996,6 +15681,16 @@
"safe-buffer": "^5.1.0"
}
},
"node_modules/randomfill": {
"version": "1.0.4",
"resolved": "http://94.130.170.209:4873/randomfill/-/randomfill-1.0.4.tgz",
"integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
"license": "MIT",
"dependencies": {
"randombytes": "^2.0.5",
"safe-buffer": "^5.1.0"
}
},
"node_modules/range-parser": {
"version": "1.2.1",
"license": "MIT",
@@ -15055,6 +15750,32 @@
"node": ">=14"
}
},
"node_modules/react-app-rewired": {
"version": "2.2.1",
"resolved": "http://94.130.170.209:4873/react-app-rewired/-/react-app-rewired-2.2.1.tgz",
"integrity": "sha512-uFQWTErXeLDrMzOJHKp0h8P1z0LV9HzPGsJ6adOtGlA/B9WfT6Shh4j2tLTTGlXOfiVx6w6iWpp7SOC5pvk+gA==",
"dev": true,
"license": "MIT",
"dependencies": {
"semver": "^5.6.0"
},
"bin": {
"react-app-rewired": "bin/index.js"
},
"peerDependencies": {
"react-scripts": ">=2.1.3"
}
},
"node_modules/react-app-rewired/node_modules/semver": {
"version": "5.7.2",
"resolved": "http://94.130.170.209:4873/semver/-/semver-5.7.2.tgz",
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"dev": true,
"license": "ISC",
"bin": {
"semver": "bin/semver"
}
},
"node_modules/react-bootstrap": {
"version": "2.10.7",
"license": "MIT",
@@ -16570,6 +17291,16 @@
"node": ">= 0.4"
}
},
"node_modules/stream-browserify": {
"version": "3.0.0",
"resolved": "http://94.130.170.209:4873/stream-browserify/-/stream-browserify-3.0.0.tgz",
"integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==",
"license": "MIT",
"dependencies": {
"inherits": "~2.0.4",
"readable-stream": "^3.5.0"
}
},
"node_modules/stream-to-it": {
"version": "0.2.4",
"dev": true,
@@ -17641,6 +18372,12 @@
"node": ">= 0.8"
}
},
"node_modules/vm-browserify": {
"version": "1.1.2",
"resolved": "http://94.130.170.209:4873/vm-browserify/-/vm-browserify-1.1.2.tgz",
"integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==",
"license": "MIT"
},
"node_modules/w3c-hr-time": {
"version": "1.0.2",
"license": "MIT",
+11 -5
View File
@@ -8,8 +8,11 @@
"@fortawesome/free-solid-svg-icons": "6.7.2",
"@fortawesome/react-fontawesome": "0.2.2",
"axios": "0.27.2",
"bch-dex-lib": "2.0.2",
"bch-message-lib": "2.2.1",
"bootstrap": "5.2.0",
"crypto-browserify": "3.12.1",
"process": "^0.11.10",
"qrcode.react": "4.2.0",
"query-string": "7.1.1",
"react": "19.0.0",
@@ -17,14 +20,16 @@
"react-dom": "19.0.0",
"react-router-dom": "7.1.3",
"react-scripts": "5.0.1",
"stream-browserify": "^3.0.0",
"use-local-storage-state": "19.5.0",
"use-query-params": "1.2.3"
"use-query-params": "1.2.3",
"vm-browserify": "1.1.2"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject",
"start": "react-app-rewired start",
"build": "react-app-rewired build",
"test": "react-app-rewired test",
"eject": "react-app-rewired eject",
"lint": "standard --env mocha --fix",
"pub": "node deploy/publish-main.js",
"pub:ghp": "./deploy/publish-gh-pages.sh"
@@ -46,6 +51,7 @@
},
"devDependencies": {
"minimal-slp-wallet": "5.8.5",
"react-app-rewired": "^2.2.1",
"standard": "17.0.0",
"web3.storage": "4.3.0"
}
+13 -1
View File
@@ -9,6 +9,7 @@ import axios from 'axios'
import Jdenticon from '@chris.troutner/react-jdenticon'
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
import { faRedo } from '@fortawesome/free-solid-svg-icons'
import BchDexLib from 'bch-dex-lib'
// import RetryQueue from '@chris.troutner/retry-queue'
// Local libraries
@@ -38,6 +39,14 @@ function NftsForSale (props) {
const rawOffers = result.data
const bchjs = appData.wallet.bchjs
const wallet = appData.wallet
// Instantiate the BchDexLib object.
const dexLib = new BchDexLib({bchWallet: wallet, p2wdbRead: {}, p2wdbWrite: {}})
const offerDataCallback = (offer) => {
console.log('offerDataCallback() offer: ', offer)
}
// Add a default icon.
for (let i = 0; i < rawOffers.length; i++) {
@@ -57,6 +66,9 @@ function NftsForSale (props) {
// console.log(`usdPrice: ${usdPrice}`)
const priceStr = `$${usdPrice.toFixed(3)}`
thisOffer.usdPrice = priceStr
// Download token data
await dexLib.tokenData.getTokenData(thisOffer, offerDataCallback)
}
return rawOffers
@@ -90,7 +102,7 @@ function NftsForSale (props) {
// Load NFT data when the page loads from the server or from the cache.
useEffect(() => {
asyncStartup()
}, [offers])
}, [])
// This function generates a Token Card for each token in the wallet.
function generateCards () {
@@ -0,0 +1,94 @@
/*
This component renders as a button. When clicked, it opens a modal that
displays information about the token.
This is a functional component with as little state as possible.
*/
// Global npm libraries
import React, { useState } from 'react'
import { Button, Modal, Container, Row, Col } from 'react-bootstrap'
function InfoButton (props) {
const [show, setShow] = useState(false)
const handleClose = () => {
console.log('handleClose()')
setShow(false)
// props.instance.setState({ showModal: false })
}
const handleOpen = () => {
console.log('handleOpen()')
setShow(true)
}
console.log('props.token: ', props.token)
// Replace with dummy button until token data is loaded.
if (!props.token.tokenData) {
return (
<>
<Button variant='info'>Info</Button>
</>
)
}
// Convert the url property of the token to a link, if it matches common patterns.
// let url = props.token.tokenurl
// url = linkIfUrl(props.token.url)
// console.log('props.token: ', props.token)
return (
<>
<Button variant='info' onClick={handleOpen}>Info</Button>
<Modal show={show} onHide={handleClose}>
<Modal.Header closeButton>
<Modal.Title>Token Information</Modal.Title>
</Modal.Header>
<Modal.Body>
<Container>
<Row>
<Col xs={4}><b>Ticker</b>:</Col>
<Col xs={8}>{props.token.ticker}</Col>
</Row>
<Row style={{ backgroundColor: '#eee' }}>
<Col xs={4}><b>Name</b>:</Col>
<Col xs={8}>{props.token.tokenData.tokenStats.name}</Col>
</Row>
<Row>
<Col xs={4}><b>Token ID</b>:</Col>
<Col xs={8} style={{ wordBreak: 'break-all' }}>
<a href={`https://token.fullstack.cash/?tokenid=${props.token.tokenId}`} target='_blank' rel='noreferrer'>
{props.token.tokenId}
</a>
</Col>
</Row>
<Row style={{ backgroundColor: '#eee' }}>
<Col xs={4}><b>Decimals</b>:</Col>
<Col xs={8}>{props.token.tokenData.tokenStats.decimals}</Col>
</Row>
<Row>
<Col xs={4}><b>Token Type</b>:</Col>
<Col xs={8}>{props.token.tokenType}</Col>
</Row>
{/*
<Row style={{ backgroundColor: '#eee', wordBreak: 'break-all' }}>
<Col xs={4}><b>URL</b>:</Col>
<Col xs={8}>{url}</Col>
</Row>
*/}
</Container>
</Modal.Body>
<Modal.Footer />
</Modal>
</>
)
}
export default InfoButton
@@ -6,7 +6,7 @@
import React from 'react'
import { Container, Row, Col, Card } from 'react-bootstrap'
// import BuyNftButton from './buy-button'
// import InfoButton from './info-button'
import InfoButton from './info-button'
// import FlagButton from './flag-button'
// Local libraries
@@ -24,6 +24,8 @@ function TokenCard (props) {
}
}
console.log('TokenCard props.token: ', props.token)
return (
<>
<Col xs={12} sm={6} lg={4} style={{ padding: '25px' }}>
@@ -52,8 +54,12 @@ function TokenCard (props) {
<Row>
<Col>
<p>buttons here</p>
<InfoButton token={props.token} />
</Col>
<Col></Col>
<Col></Col>
</Row>
</Container>