Compare commits

..
5 Commits
8 changed files with 376 additions and 516 deletions
+24 -515
View File
@@ -9,7 +9,7 @@
"version": "1.0.0",
"license": "MIT",
"dependencies": {
"@psf/bch-js": "5.3.2",
"@psf/bch-js": "6.3.4",
"axios": "0.25.0",
"bcryptjs": "2.4.3",
"glob": "7.1.6",
@@ -1487,18 +1487,17 @@
"license": "BSD-3-Clause"
},
"node_modules/@psf/bch-js": {
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/@psf/bch-js/-/bch-js-5.3.2.tgz",
"integrity": "sha512-LzYekwuee+T8AEZ1MKBe5KnZKXzpRZ57SpXRL2S8qsHefokTIN+XnDPX7dsOFkN4VGGgyjYyZ33iN6xhOSHWJw==",
"version": "6.3.4",
"resolved": "http://94.130.170.209:4873/@psf%2fbch-js/-/bch-js-6.3.4.tgz",
"integrity": "sha512-TgT1R+PUJomdpUUuOY/PDb8Nl6PDbF9qohlbkEv7cvkT1WvkN1Obma4b2tziL45mxhKVM3ASYBgAGw8yURiiXQ==",
"license": "MIT",
"dependencies": {
"@chris.troutner/bip32-utils": "1.0.5",
"@psf/bip21": "2.0.1",
"@psf/bitcoincash-ops": "2.0.0",
"@psf/bitcoincashjs-lib": "4.0.2",
"@psf/coininfo": "4.0.0",
"@uppy/core": "1.10.4",
"@uppy/tus": "1.5.12",
"axios": "^0.21.4",
"axios": "0.26.1",
"bc-bip68": "1.0.5",
"bchaddrjs-slp": "0.2.5",
"bigi": "1.4.2",
@@ -1520,12 +1519,12 @@
}
},
"node_modules/@psf/bch-js/node_modules/axios": {
"version": "0.21.4",
"resolved": "http://94.130.170.209:4873/axios/-/axios-0.21.4.tgz",
"integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
"version": "0.26.1",
"resolved": "http://94.130.170.209:4873/axios/-/axios-0.26.1.tgz",
"integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==",
"license": "MIT",
"dependencies": {
"follow-redirects": "^1.14.0"
"follow-redirects": "^1.14.8"
}
},
"node_modules/@psf/bip21": {
@@ -2041,12 +2040,6 @@
"integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==",
"license": "MIT"
},
"node_modules/@types/tus-js-client": {
"version": "1.8.0",
"resolved": "http://94.130.170.209:4873/@types%2ftus-js-client/-/tus-js-client-1.8.0.tgz",
"integrity": "sha512-lWxu5+6qfyfwsW99GzUeJ9y9JeOSSLduKxgYMvaYM7sGTDKZsrIIHTUbHI2P016xhXtu9NxmUM3GrB4i14ie4A==",
"license": "MIT"
},
"node_modules/@ungap/promise-all-settled": {
"version": "1.1.2",
"resolved": "http://94.130.170.209:4873/@ungap%2fpromise-all-settled/-/promise-all-settled-1.1.2.tgz",
@@ -2054,73 +2047,6 @@
"dev": true,
"license": "ISC"
},
"node_modules/@uppy/companion-client": {
"version": "1.10.2",
"resolved": "http://94.130.170.209:4873/@uppy%2fcompanion-client/-/companion-client-1.10.2.tgz",
"integrity": "sha512-5RmsNF9UBvUqmqQz48SoiLvkpGmvQTgwNM4bJX8xwVozv/6goRpFrsMJGLwqFcHS/9xj6STKOqrM582g8exVwQ==",
"license": "MIT",
"dependencies": {
"@uppy/utils": "^3.6.2",
"namespace-emitter": "^2.0.1",
"qs-stringify": "^1.1.0",
"url-parse": "^1.4.7"
}
},
"node_modules/@uppy/companion-client/node_modules/@uppy/utils": {
"version": "3.6.2",
"resolved": "http://94.130.170.209:4873/@uppy%2futils/-/utils-3.6.2.tgz",
"integrity": "sha512-wGTZma7eywIojfuE1vXlT0fxPSpmCRMkfgFWYc+6TL2FfGqWInmePoB+yal6/M2AnjeKHz6XYMhIpZkjOxFvcw==",
"license": "MIT",
"dependencies": {
"abortcontroller-polyfill": "^1.4.0",
"lodash.throttle": "^4.1.1"
}
},
"node_modules/@uppy/core": {
"version": "1.10.4",
"resolved": "http://94.130.170.209:4873/@uppy%2fcore/-/core-1.10.4.tgz",
"integrity": "sha512-mORSXL4JyXHGo98u6u0sMzv3wtdI5jjHsqyThQAXx3LvctWE0EBrxE7vJqrXue2z/m9lovsZVhuzP2L7Qkuebg==",
"license": "MIT",
"dependencies": {
"@uppy/store-default": "^1.2.1",
"@uppy/utils": "^2.4.4",
"cuid": "^2.1.1",
"lodash.throttle": "^4.1.1",
"mime-match": "^1.0.2",
"namespace-emitter": "^2.0.1",
"preact": "8.2.9"
}
},
"node_modules/@uppy/store-default": {
"version": "1.2.7",
"resolved": "http://94.130.170.209:4873/@uppy%2fstore-default/-/store-default-1.2.7.tgz",
"integrity": "sha512-58IG9yk/i/kYQ9uEwAwMFl1H2V3syOoODrYoFfVHlxaqv+9MkXBg2tHE2gk40iaAIxcCErcPxZkBOvkqzO1SQA==",
"license": "MIT"
},
"node_modules/@uppy/tus": {
"version": "1.5.12",
"resolved": "http://94.130.170.209:4873/@uppy%2ftus/-/tus-1.5.12.tgz",
"integrity": "sha512-jDiwsTRHnMfb83ZB8JdDD0uA9DX0K/FqenGMYBGTOlkCjAcXD3sI59DzEHwq2TtY3ZH7iaL3fTNQ7ExBWkwrqw==",
"license": "MIT",
"dependencies": {
"@types/tus-js-client": "^1.8.0",
"@uppy/companion-client": "^1.4.4",
"@uppy/utils": "^2.4.4",
"tus-js-client": "^1.8.0"
},
"peerDependencies": {
"@uppy/core": "^1.0.0"
}
},
"node_modules/@uppy/utils": {
"version": "2.4.4",
"resolved": "http://94.130.170.209:4873/@uppy%2futils/-/utils-2.4.4.tgz",
"integrity": "sha512-7A0uwK5Rf8XcKqlpNUZ5L5LmkHT5c0/UWjDJGwmzeCxp2lECgzsMC+4vgA6kT4sFzPFbLtUtxHi7ecFwow3NQQ==",
"license": "MIT",
"dependencies": {
"lodash.throttle": "^4.1.1"
}
},
"node_modules/@vascosantos/moving-average": {
"version": "1.1.0",
"resolved": "http://94.130.170.209:4873/@vascosantos%2fmoving-average/-/moving-average-1.1.0.tgz",
@@ -2154,12 +2080,6 @@
"get-iterator": "^1.0.2"
}
},
"node_modules/abortcontroller-polyfill": {
"version": "1.7.3",
"resolved": "http://94.130.170.209:4873/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.3.tgz",
"integrity": "sha512-zetDJxd89y3X99Kvo4qFx8GKlt6GsvN3UcRZHwU6iFA/0KiOmhkTVhe8oRoTBiTVPZu09x3vCra47+w8Yz1+2Q==",
"license": "MIT"
},
"node_modules/abstract-leveldown": {
"version": "7.2.0",
"resolved": "http://94.130.170.209:4873/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz",
@@ -3808,25 +3728,6 @@
"text-hex": "1.0.x"
}
},
"node_modules/combine-errors": {
"version": "3.0.3",
"resolved": "http://94.130.170.209:4873/combine-errors/-/combine-errors-3.0.3.tgz",
"integrity": "sha1-9N9nQAg+VwOjGBEQwrEFUfAD2oY=",
"dependencies": {
"custom-error-instance": "2.1.1",
"lodash.uniqby": "4.5.0"
}
},
"node_modules/combine-errors/node_modules/lodash.uniqby": {
"version": "4.5.0",
"resolved": "http://94.130.170.209:4873/lodash.uniqby/-/lodash.uniqby-4.5.0.tgz",
"integrity": "sha1-o6F7v2LutiQPSRhG6XwcTipeHiE=",
"license": "MIT",
"dependencies": {
"lodash._baseiteratee": "~4.7.0",
"lodash._baseuniq": "~4.6.0"
}
},
"node_modules/combined-stream": {
"version": "1.0.8",
"resolved": "http://94.130.170.209:4873/combined-stream/-/combined-stream-1.0.8.tgz",
@@ -4256,12 +4157,6 @@
"node": ">=8"
}
},
"node_modules/cuid": {
"version": "2.1.8",
"resolved": "http://94.130.170.209:4873/cuid/-/cuid-2.1.8.tgz",
"integrity": "sha512-xiEMER6E7TlTPnDxrM4eRiC6TRgjNX9xzEZ5U/Se2YJKr7Mq4pJn/2XEHjl3STcSh96GmkHPcBXLES8M29wyyg==",
"license": "MIT"
},
"node_modules/currently-unhandled": {
"version": "0.4.1",
"resolved": "http://94.130.170.209:4873/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
@@ -4275,12 +4170,6 @@
"node": ">=0.10.0"
}
},
"node_modules/custom-error-instance": {
"version": "2.1.1",
"resolved": "http://94.130.170.209:4873/custom-error-instance/-/custom-error-instance-2.1.1.tgz",
"integrity": "sha1-PPY5FIemYppiR+sMoM4ACBt+Nho=",
"license": "ISC"
},
"node_modules/dashdash": {
"version": "1.14.1",
"resolved": "http://94.130.170.209:4873/dashdash/-/dashdash-1.14.1.tgz",
@@ -6475,9 +6364,9 @@
"license": "MIT"
},
"node_modules/follow-redirects": {
"version": "1.14.7",
"resolved": "http://94.130.170.209:4873/follow-redirects/-/follow-redirects-1.14.7.tgz",
"integrity": "sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==",
"version": "1.15.0",
"resolved": "http://94.130.170.209:4873/follow-redirects/-/follow-redirects-1.15.0.tgz",
"integrity": "sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ==",
"funding": [
{
"type": "individual",
@@ -10340,12 +10229,6 @@
"node": ">=6"
}
},
"node_modules/js-base64": {
"version": "2.6.4",
"resolved": "http://94.130.170.209:4873/js-base64/-/js-base64-2.6.4.tgz",
"integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==",
"license": "BSD-3-Clause"
},
"node_modules/js-sha256": {
"version": "0.9.0",
"resolved": "http://94.130.170.209:4873/js-sha256/-/js-sha256-0.9.0.tgz",
@@ -11849,52 +11732,6 @@
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
"license": "MIT"
},
"node_modules/lodash._baseiteratee": {
"version": "4.7.0",
"resolved": "http://94.130.170.209:4873/lodash._baseiteratee/-/lodash._baseiteratee-4.7.0.tgz",
"integrity": "sha1-NKm1VDVycnw9sueO2uPA6eZr0QI=",
"license": "MIT",
"dependencies": {
"lodash._stringtopath": "~4.8.0"
}
},
"node_modules/lodash._basetostring": {
"version": "4.12.0",
"resolved": "http://94.130.170.209:4873/lodash._basetostring/-/lodash._basetostring-4.12.0.tgz",
"integrity": "sha1-kyfJ3FFYhmt/pLnUL0Y45XZt2d8=",
"license": "MIT"
},
"node_modules/lodash._baseuniq": {
"version": "4.6.0",
"resolved": "http://94.130.170.209:4873/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz",
"integrity": "sha1-DrtE5FaBSveQXGIS+iybLVG4Qeg=",
"license": "MIT",
"dependencies": {
"lodash._createset": "~4.0.0",
"lodash._root": "~3.0.0"
}
},
"node_modules/lodash._createset": {
"version": "4.0.3",
"resolved": "http://94.130.170.209:4873/lodash._createset/-/lodash._createset-4.0.3.tgz",
"integrity": "sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY=",
"license": "MIT"
},
"node_modules/lodash._root": {
"version": "3.0.1",
"resolved": "http://94.130.170.209:4873/lodash._root/-/lodash._root-3.0.1.tgz",
"integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=",
"license": "MIT"
},
"node_modules/lodash._stringtopath": {
"version": "4.8.0",
"resolved": "http://94.130.170.209:4873/lodash._stringtopath/-/lodash._stringtopath-4.8.0.tgz",
"integrity": "sha1-lBvPDmQmbl/B1m/tCmlZVExXaCQ=",
"license": "MIT",
"dependencies": {
"lodash._basetostring": "~4.12.0"
}
},
"node_modules/lodash.camelcase": {
"version": "4.3.0",
"resolved": "http://94.130.170.209:4873/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
@@ -12366,15 +12203,6 @@
"node": ">= 0.6"
}
},
"node_modules/mime-match": {
"version": "1.0.2",
"resolved": "http://94.130.170.209:4873/mime-match/-/mime-match-1.0.2.tgz",
"integrity": "sha1-P4fDHprxpf1IX7nbE0Qosju7e6g=",
"license": "ISC",
"dependencies": {
"wildcard": "^1.1.0"
}
},
"node_modules/mime-types": {
"version": "2.1.34",
"resolved": "http://94.130.170.209:4873/mime-types/-/mime-types-2.1.34.tgz",
@@ -13193,12 +13021,6 @@
"npm": ">=3.X.X"
}
},
"node_modules/namespace-emitter": {
"version": "2.0.1",
"resolved": "http://94.130.170.209:4873/namespace-emitter/-/namespace-emitter-2.0.1.tgz",
"integrity": "sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==",
"license": "MIT"
},
"node_modules/nan": {
"version": "2.15.0",
"resolved": "http://94.130.170.209:4873/nan/-/nan-2.15.0.tgz",
@@ -18295,13 +18117,6 @@
"semver-compare": "^1.0.0"
}
},
"node_modules/preact": {
"version": "8.2.9",
"resolved": "http://94.130.170.209:4873/preact/-/preact-8.2.9.tgz",
"integrity": "sha512-ThuGXBmJS3VsT+jIP+eQufD3L8pRw/PY3FoCys6O9Pu6aF12Pn9zAJDX99TfwRAFOCEKm/P0lwiPTbqKMJp0fA==",
"hasInstallScript": true,
"license": "MIT"
},
"node_modules/prelude-ls": {
"version": "1.2.1",
"resolved": "http://94.130.170.209:4873/prelude-ls/-/prelude-ls-1.2.1.tgz",
@@ -18836,18 +18651,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/qs-stringify": {
"version": "1.2.1",
"resolved": "http://94.130.170.209:4873/qs-stringify/-/qs-stringify-1.2.1.tgz",
"integrity": "sha512-2N5xGLGZUxpgAYq1fD1LmBSCbxQVsXYt5JU0nU3FuPWO8PlCnKNFQwXkZgyB6mrTdg7IbexX4wxIR403dJw9pw==",
"license": "MIT"
},
"node_modules/querystringify": {
"version": "2.2.0",
"resolved": "http://94.130.170.209:4873/querystringify/-/querystringify-2.2.0.tgz",
"integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==",
"license": "MIT"
},
"node_modules/queue-microtask": {
"version": "1.2.3",
"resolved": "http://94.130.170.209:4873/queue-microtask/-/queue-microtask-1.2.3.tgz",
@@ -19437,12 +19240,6 @@
"dev": true,
"license": "ISC"
},
"node_modules/requires-port": {
"version": "1.0.0",
"resolved": "http://94.130.170.209:4873/requires-port/-/requires-port-1.0.0.tgz",
"integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
"license": "MIT"
},
"node_modules/resolve": {
"version": "1.20.0",
"resolved": "http://94.130.170.209:4873/resolve/-/resolve-1.20.0.tgz",
@@ -21887,49 +21684,6 @@
"node": "*"
}
},
"node_modules/tus-js-client": {
"version": "1.8.0",
"resolved": "http://94.130.170.209:4873/tus-js-client/-/tus-js-client-1.8.0.tgz",
"integrity": "sha512-qPX3TywqzxocTxUZtcS8X7Aik72SVMa0jKi4hWyfvRV+s9raVzzYGaP4MoJGaF0yOgm2+b6jXaVEHogxcJ8LGw==",
"license": "MIT",
"dependencies": {
"buffer-from": "^0.1.1",
"combine-errors": "^3.0.3",
"extend": "^3.0.2",
"js-base64": "^2.4.9",
"lodash.throttle": "^4.1.1",
"proper-lockfile": "^2.0.1",
"url-parse": "^1.4.3"
}
},
"node_modules/tus-js-client/node_modules/buffer-from": {
"version": "0.1.2",
"resolved": "http://94.130.170.209:4873/buffer-from/-/buffer-from-0.1.2.tgz",
"integrity": "sha512-RiWIenusJsmI2KcvqQABB83tLxCByE3upSP8QU3rJDMVFGPWLvPQJt/O1Su9moRWeH7d+Q2HYb68f6+v+tw2vg==",
"license": "MIT"
},
"node_modules/tus-js-client/node_modules/proper-lockfile": {
"version": "2.0.1",
"resolved": "http://94.130.170.209:4873/proper-lockfile/-/proper-lockfile-2.0.1.tgz",
"integrity": "sha1-FZ+wYZPTIAP0s2kd0uwaY0qoDR0=",
"license": "MIT",
"dependencies": {
"graceful-fs": "^4.1.2",
"retry": "^0.10.0"
},
"engines": {
"node": ">=4.0.0"
}
},
"node_modules/tus-js-client/node_modules/retry": {
"version": "0.10.1",
"resolved": "http://94.130.170.209:4873/retry/-/retry-0.10.1.tgz",
"integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=",
"license": "MIT",
"engines": {
"node": "*"
}
},
"node_modules/tweetnacl": {
"version": "0.14.5",
"resolved": "http://94.130.170.209:4873/tweetnacl/-/tweetnacl-0.14.5.tgz",
@@ -22187,16 +21941,6 @@
"dev": true,
"license": "MIT"
},
"node_modules/url-parse": {
"version": "1.5.4",
"resolved": "http://94.130.170.209:4873/url-parse/-/url-parse-1.5.4.tgz",
"integrity": "sha512-ITeAByWWoqutFClc/lRZnFplgXgEZr3WJ6XngMM/N9DMIm4K8zXPCZ1Jdu0rERwO84w1WC5wkle2ubwTA4NTBg==",
"license": "MIT",
"dependencies": {
"querystringify": "^2.1.1",
"requires-port": "^1.0.0"
}
},
"node_modules/url-parse-lax": {
"version": "3.0.0",
"resolved": "http://94.130.170.209:4873/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
@@ -22497,12 +22241,6 @@
"bs58check": "<3.0.0"
}
},
"node_modules/wildcard": {
"version": "1.1.2",
"resolved": "http://94.130.170.209:4873/wildcard/-/wildcard-1.1.2.tgz",
"integrity": "sha1-pwIEUwhNjNLv5wup02liY94XEKU=",
"license": "MIT"
},
"node_modules/winston": {
"version": "3.3.3",
"resolved": "http://94.130.170.209:4873/winston/-/winston-3.3.3.tgz",
@@ -23997,18 +23735,16 @@
"integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA="
},
"@psf/bch-js": {
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/@psf/bch-js/-/bch-js-5.3.2.tgz",
"integrity": "sha512-LzYekwuee+T8AEZ1MKBe5KnZKXzpRZ57SpXRL2S8qsHefokTIN+XnDPX7dsOFkN4VGGgyjYyZ33iN6xhOSHWJw==",
"version": "6.3.4",
"resolved": "http://94.130.170.209:4873/@psf%2fbch-js/-/bch-js-6.3.4.tgz",
"integrity": "sha512-TgT1R+PUJomdpUUuOY/PDb8Nl6PDbF9qohlbkEv7cvkT1WvkN1Obma4b2tziL45mxhKVM3ASYBgAGw8yURiiXQ==",
"requires": {
"@chris.troutner/bip32-utils": "1.0.5",
"@psf/bip21": "2.0.1",
"@psf/bitcoincash-ops": "2.0.0",
"@psf/bitcoincashjs-lib": "4.0.2",
"@psf/coininfo": "4.0.0",
"@uppy/core": "1.10.4",
"@uppy/tus": "1.5.12",
"axios": "^0.21.4",
"axios": "0.26.1",
"bc-bip68": "1.0.5",
"bchaddrjs-slp": "0.2.5",
"bigi": "1.4.2",
@@ -24030,11 +23766,11 @@
},
"dependencies": {
"axios": {
"version": "0.21.4",
"resolved": "http://94.130.170.209:4873/axios/-/axios-0.21.4.tgz",
"integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
"version": "0.26.1",
"resolved": "http://94.130.170.209:4873/axios/-/axios-0.26.1.tgz",
"integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==",
"requires": {
"follow-redirects": "^1.14.0"
"follow-redirects": "^1.14.8"
}
}
}
@@ -24469,77 +24205,12 @@
"resolved": "http://94.130.170.209:4873/@types%2fretry/-/retry-0.12.1.tgz",
"integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g=="
},
"@types/tus-js-client": {
"version": "1.8.0",
"resolved": "http://94.130.170.209:4873/@types%2ftus-js-client/-/tus-js-client-1.8.0.tgz",
"integrity": "sha512-lWxu5+6qfyfwsW99GzUeJ9y9JeOSSLduKxgYMvaYM7sGTDKZsrIIHTUbHI2P016xhXtu9NxmUM3GrB4i14ie4A=="
},
"@ungap/promise-all-settled": {
"version": "1.1.2",
"resolved": "http://94.130.170.209:4873/@ungap%2fpromise-all-settled/-/promise-all-settled-1.1.2.tgz",
"integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==",
"dev": true
},
"@uppy/companion-client": {
"version": "1.10.2",
"resolved": "http://94.130.170.209:4873/@uppy%2fcompanion-client/-/companion-client-1.10.2.tgz",
"integrity": "sha512-5RmsNF9UBvUqmqQz48SoiLvkpGmvQTgwNM4bJX8xwVozv/6goRpFrsMJGLwqFcHS/9xj6STKOqrM582g8exVwQ==",
"requires": {
"@uppy/utils": "^3.6.2",
"namespace-emitter": "^2.0.1",
"qs-stringify": "^1.1.0",
"url-parse": "^1.4.7"
},
"dependencies": {
"@uppy/utils": {
"version": "3.6.2",
"resolved": "http://94.130.170.209:4873/@uppy%2futils/-/utils-3.6.2.tgz",
"integrity": "sha512-wGTZma7eywIojfuE1vXlT0fxPSpmCRMkfgFWYc+6TL2FfGqWInmePoB+yal6/M2AnjeKHz6XYMhIpZkjOxFvcw==",
"requires": {
"abortcontroller-polyfill": "^1.4.0",
"lodash.throttle": "^4.1.1"
}
}
}
},
"@uppy/core": {
"version": "1.10.4",
"resolved": "http://94.130.170.209:4873/@uppy%2fcore/-/core-1.10.4.tgz",
"integrity": "sha512-mORSXL4JyXHGo98u6u0sMzv3wtdI5jjHsqyThQAXx3LvctWE0EBrxE7vJqrXue2z/m9lovsZVhuzP2L7Qkuebg==",
"requires": {
"@uppy/store-default": "^1.2.1",
"@uppy/utils": "^2.4.4",
"cuid": "^2.1.1",
"lodash.throttle": "^4.1.1",
"mime-match": "^1.0.2",
"namespace-emitter": "^2.0.1",
"preact": "8.2.9"
}
},
"@uppy/store-default": {
"version": "1.2.7",
"resolved": "http://94.130.170.209:4873/@uppy%2fstore-default/-/store-default-1.2.7.tgz",
"integrity": "sha512-58IG9yk/i/kYQ9uEwAwMFl1H2V3syOoODrYoFfVHlxaqv+9MkXBg2tHE2gk40iaAIxcCErcPxZkBOvkqzO1SQA=="
},
"@uppy/tus": {
"version": "1.5.12",
"resolved": "http://94.130.170.209:4873/@uppy%2ftus/-/tus-1.5.12.tgz",
"integrity": "sha512-jDiwsTRHnMfb83ZB8JdDD0uA9DX0K/FqenGMYBGTOlkCjAcXD3sI59DzEHwq2TtY3ZH7iaL3fTNQ7ExBWkwrqw==",
"requires": {
"@types/tus-js-client": "^1.8.0",
"@uppy/companion-client": "^1.4.4",
"@uppy/utils": "^2.4.4",
"tus-js-client": "^1.8.0"
}
},
"@uppy/utils": {
"version": "2.4.4",
"resolved": "http://94.130.170.209:4873/@uppy%2futils/-/utils-2.4.4.tgz",
"integrity": "sha512-7A0uwK5Rf8XcKqlpNUZ5L5LmkHT5c0/UWjDJGwmzeCxp2lECgzsMC+4vgA6kT4sFzPFbLtUtxHi7ecFwow3NQQ==",
"requires": {
"lodash.throttle": "^4.1.1"
}
},
"@vascosantos/moving-average": {
"version": "1.1.0",
"resolved": "http://94.130.170.209:4873/@vascosantos%2fmoving-average/-/moving-average-1.1.0.tgz",
@@ -24566,11 +24237,6 @@
"get-iterator": "^1.0.2"
}
},
"abortcontroller-polyfill": {
"version": "1.7.3",
"resolved": "http://94.130.170.209:4873/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.3.tgz",
"integrity": "sha512-zetDJxd89y3X99Kvo4qFx8GKlt6GsvN3UcRZHwU6iFA/0KiOmhkTVhe8oRoTBiTVPZu09x3vCra47+w8Yz1+2Q=="
},
"abstract-leveldown": {
"version": "7.2.0",
"resolved": "http://94.130.170.209:4873/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz",
@@ -25747,26 +25413,6 @@
"text-hex": "1.0.x"
}
},
"combine-errors": {
"version": "3.0.3",
"resolved": "http://94.130.170.209:4873/combine-errors/-/combine-errors-3.0.3.tgz",
"integrity": "sha1-9N9nQAg+VwOjGBEQwrEFUfAD2oY=",
"requires": {
"custom-error-instance": "2.1.1",
"lodash.uniqby": "4.5.0"
},
"dependencies": {
"lodash.uniqby": {
"version": "4.5.0",
"resolved": "http://94.130.170.209:4873/lodash.uniqby/-/lodash.uniqby-4.5.0.tgz",
"integrity": "sha1-o6F7v2LutiQPSRhG6XwcTipeHiE=",
"requires": {
"lodash._baseiteratee": "~4.7.0",
"lodash._baseuniq": "~4.6.0"
}
}
}
},
"combined-stream": {
"version": "1.0.8",
"resolved": "http://94.130.170.209:4873/combined-stream/-/combined-stream-1.0.8.tgz",
@@ -26094,11 +25740,6 @@
"resolved": "http://94.130.170.209:4873/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
"integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA=="
},
"cuid": {
"version": "2.1.8",
"resolved": "http://94.130.170.209:4873/cuid/-/cuid-2.1.8.tgz",
"integrity": "sha512-xiEMER6E7TlTPnDxrM4eRiC6TRgjNX9xzEZ5U/Se2YJKr7Mq4pJn/2XEHjl3STcSh96GmkHPcBXLES8M29wyyg=="
},
"currently-unhandled": {
"version": "0.4.1",
"resolved": "http://94.130.170.209:4873/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
@@ -26108,11 +25749,6 @@
"array-find-index": "^1.0.1"
}
},
"custom-error-instance": {
"version": "2.1.1",
"resolved": "http://94.130.170.209:4873/custom-error-instance/-/custom-error-instance-2.1.1.tgz",
"integrity": "sha1-PPY5FIemYppiR+sMoM4ACBt+Nho="
},
"dashdash": {
"version": "1.14.1",
"resolved": "http://94.130.170.209:4873/dashdash/-/dashdash-1.14.1.tgz",
@@ -27730,9 +27366,9 @@
"integrity": "sha1-kV4tbQI8Q9UiStn20qPEFW9XEvU="
},
"follow-redirects": {
"version": "1.14.7",
"resolved": "http://94.130.170.209:4873/follow-redirects/-/follow-redirects-1.14.7.tgz",
"integrity": "sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ=="
"version": "1.15.0",
"resolved": "http://94.130.170.209:4873/follow-redirects/-/follow-redirects-1.15.0.tgz",
"integrity": "sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ=="
},
"for-each": {
"version": "0.3.3",
@@ -30581,11 +30217,6 @@
"resolved": "http://94.130.170.209:4873/joycon/-/joycon-2.2.5.tgz",
"integrity": "sha512-YqvUxoOcVPnCp0VU1/56f+iKSdvIRJYPznH22BdXV3xMk75SFXhWeJkZ8C9XxUWt1b5x2X1SxuFygW1U0FmkEQ=="
},
"js-base64": {
"version": "2.6.4",
"resolved": "http://94.130.170.209:4873/js-base64/-/js-base64-2.6.4.tgz",
"integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ=="
},
"js-sha256": {
"version": "0.9.0",
"resolved": "http://94.130.170.209:4873/js-sha256/-/js-sha256-0.9.0.tgz",
@@ -31767,46 +31398,6 @@
"resolved": "http://94.130.170.209:4873/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
},
"lodash._baseiteratee": {
"version": "4.7.0",
"resolved": "http://94.130.170.209:4873/lodash._baseiteratee/-/lodash._baseiteratee-4.7.0.tgz",
"integrity": "sha1-NKm1VDVycnw9sueO2uPA6eZr0QI=",
"requires": {
"lodash._stringtopath": "~4.8.0"
}
},
"lodash._basetostring": {
"version": "4.12.0",
"resolved": "http://94.130.170.209:4873/lodash._basetostring/-/lodash._basetostring-4.12.0.tgz",
"integrity": "sha1-kyfJ3FFYhmt/pLnUL0Y45XZt2d8="
},
"lodash._baseuniq": {
"version": "4.6.0",
"resolved": "http://94.130.170.209:4873/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz",
"integrity": "sha1-DrtE5FaBSveQXGIS+iybLVG4Qeg=",
"requires": {
"lodash._createset": "~4.0.0",
"lodash._root": "~3.0.0"
}
},
"lodash._createset": {
"version": "4.0.3",
"resolved": "http://94.130.170.209:4873/lodash._createset/-/lodash._createset-4.0.3.tgz",
"integrity": "sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY="
},
"lodash._root": {
"version": "3.0.1",
"resolved": "http://94.130.170.209:4873/lodash._root/-/lodash._root-3.0.1.tgz",
"integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI="
},
"lodash._stringtopath": {
"version": "4.8.0",
"resolved": "http://94.130.170.209:4873/lodash._stringtopath/-/lodash._stringtopath-4.8.0.tgz",
"integrity": "sha1-lBvPDmQmbl/B1m/tCmlZVExXaCQ=",
"requires": {
"lodash._basetostring": "~4.12.0"
}
},
"lodash.camelcase": {
"version": "4.3.0",
"resolved": "http://94.130.170.209:4873/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
@@ -32149,14 +31740,6 @@
"resolved": "http://94.130.170.209:4873/mime-db/-/mime-db-1.51.0.tgz",
"integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g=="
},
"mime-match": {
"version": "1.0.2",
"resolved": "http://94.130.170.209:4873/mime-match/-/mime-match-1.0.2.tgz",
"integrity": "sha1-P4fDHprxpf1IX7nbE0Qosju7e6g=",
"requires": {
"wildcard": "^1.1.0"
}
},
"mime-types": {
"version": "2.1.34",
"resolved": "http://94.130.170.209:4873/mime-types/-/mime-types-2.1.34.tgz",
@@ -32719,11 +32302,6 @@
"resolved": "http://94.130.170.209:4873/mutable-proxy/-/mutable-proxy-1.0.0.tgz",
"integrity": "sha512-4OvNRr1DJpy2QuDUV74m+BWZ//n4gG4bmd21MzDSPqHEidIDWqwyOjcadU1LBMO3vXYGurVKjfBrxrSQIHFu9A=="
},
"namespace-emitter": {
"version": "2.0.1",
"resolved": "http://94.130.170.209:4873/namespace-emitter/-/namespace-emitter-2.0.1.tgz",
"integrity": "sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g=="
},
"nan": {
"version": "2.15.0",
"resolved": "http://94.130.170.209:4873/nan/-/nan-2.15.0.tgz",
@@ -36341,11 +35919,6 @@
"semver-compare": "^1.0.0"
}
},
"preact": {
"version": "8.2.9",
"resolved": "http://94.130.170.209:4873/preact/-/preact-8.2.9.tgz",
"integrity": "sha512-ThuGXBmJS3VsT+jIP+eQufD3L8pRw/PY3FoCys6O9Pu6aF12Pn9zAJDX99TfwRAFOCEKm/P0lwiPTbqKMJp0fA=="
},
"prelude-ls": {
"version": "1.2.1",
"resolved": "http://94.130.170.209:4873/prelude-ls/-/prelude-ls-1.2.1.tgz",
@@ -36739,16 +36312,6 @@
"side-channel": "^1.0.4"
}
},
"qs-stringify": {
"version": "1.2.1",
"resolved": "http://94.130.170.209:4873/qs-stringify/-/qs-stringify-1.2.1.tgz",
"integrity": "sha512-2N5xGLGZUxpgAYq1fD1LmBSCbxQVsXYt5JU0nU3FuPWO8PlCnKNFQwXkZgyB6mrTdg7IbexX4wxIR403dJw9pw=="
},
"querystringify": {
"version": "2.2.0",
"resolved": "http://94.130.170.209:4873/querystringify/-/querystringify-2.2.0.tgz",
"integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ=="
},
"queue-microtask": {
"version": "1.2.3",
"resolved": "http://94.130.170.209:4873/queue-microtask/-/queue-microtask-1.2.3.tgz",
@@ -37158,11 +36721,6 @@
"integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
"dev": true
},
"requires-port": {
"version": "1.0.0",
"resolved": "http://94.130.170.209:4873/requires-port/-/requires-port-1.0.0.tgz",
"integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8="
},
"resolve": {
"version": "1.20.0",
"resolved": "http://94.130.170.209:4873/resolve/-/resolve-1.20.0.tgz",
@@ -38963,41 +38521,6 @@
"safe-buffer": "^5.0.1"
}
},
"tus-js-client": {
"version": "1.8.0",
"resolved": "http://94.130.170.209:4873/tus-js-client/-/tus-js-client-1.8.0.tgz",
"integrity": "sha512-qPX3TywqzxocTxUZtcS8X7Aik72SVMa0jKi4hWyfvRV+s9raVzzYGaP4MoJGaF0yOgm2+b6jXaVEHogxcJ8LGw==",
"requires": {
"buffer-from": "^0.1.1",
"combine-errors": "^3.0.3",
"extend": "^3.0.2",
"js-base64": "^2.4.9",
"lodash.throttle": "^4.1.1",
"proper-lockfile": "^2.0.1",
"url-parse": "^1.4.3"
},
"dependencies": {
"buffer-from": {
"version": "0.1.2",
"resolved": "http://94.130.170.209:4873/buffer-from/-/buffer-from-0.1.2.tgz",
"integrity": "sha512-RiWIenusJsmI2KcvqQABB83tLxCByE3upSP8QU3rJDMVFGPWLvPQJt/O1Su9moRWeH7d+Q2HYb68f6+v+tw2vg=="
},
"proper-lockfile": {
"version": "2.0.1",
"resolved": "http://94.130.170.209:4873/proper-lockfile/-/proper-lockfile-2.0.1.tgz",
"integrity": "sha1-FZ+wYZPTIAP0s2kd0uwaY0qoDR0=",
"requires": {
"graceful-fs": "^4.1.2",
"retry": "^0.10.0"
}
},
"retry": {
"version": "0.10.1",
"resolved": "http://94.130.170.209:4873/retry/-/retry-0.10.1.tgz",
"integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q="
}
}
},
"tweetnacl": {
"version": "0.14.5",
"resolved": "http://94.130.170.209:4873/tweetnacl/-/tweetnacl-0.14.5.tgz",
@@ -39188,15 +38711,6 @@
"integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==",
"dev": true
},
"url-parse": {
"version": "1.5.4",
"resolved": "http://94.130.170.209:4873/url-parse/-/url-parse-1.5.4.tgz",
"integrity": "sha512-ITeAByWWoqutFClc/lRZnFplgXgEZr3WJ6XngMM/N9DMIm4K8zXPCZ1Jdu0rERwO84w1WC5wkle2ubwTA4NTBg==",
"requires": {
"querystringify": "^2.1.1",
"requires-port": "^1.0.0"
}
},
"url-parse-lax": {
"version": "3.0.0",
"resolved": "http://94.130.170.209:4873/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
@@ -39416,11 +38930,6 @@
"bs58check": "<3.0.0"
}
},
"wildcard": {
"version": "1.1.2",
"resolved": "http://94.130.170.209:4873/wildcard/-/wildcard-1.1.2.tgz",
"integrity": "sha1-pwIEUwhNjNLv5wup02liY94XEKU="
},
"winston": {
"version": "3.3.3",
"resolved": "http://94.130.170.209:4873/winston/-/winston-3.3.3.tgz",
+1 -1
View File
@@ -23,7 +23,7 @@
},
"repository": "Permissionless-Software-Foundation/ipfs-bch-wallet-consumer",
"dependencies": {
"@psf/bch-js": "5.3.2",
"@psf/bch-js": "6.3.4",
"axios": "0.25.0",
"bcryptjs": "2.4.3",
"glob": "7.1.6",
+84
View File
@@ -387,6 +387,90 @@ class BchAdapter {
}
}
async utxoIsValid (utxo) {
try {
// Throw an error if this IPFS node has not yet made a connection to a
// wallet service provider.
const selectedProvider =
this.ipfs.ipfsCoordAdapter.state.selectedServiceProvider
if (!selectedProvider) {
throw new Error('No BCH Wallet Service provider available yet.')
}
const rpcData = {
endpoint: 'utxoIsValid',
utxo
}
// Generate a UUID for the call.
const rpcId = this.uid()
// Generate a JSON RPC command.
const cmd = this.jsonrpc.request(rpcId, 'bch', rpcData)
const cmdStr = JSON.stringify(cmd)
console.log('cmdStr: ', cmdStr)
// Send the RPC command to selected wallet service.
const thisNode = this.ipfs.ipfsCoordAdapter.ipfsCoord.thisNode
await this.ipfs.ipfsCoordAdapter.ipfsCoord.useCases.peer.sendPrivateMessage(
selectedProvider,
cmdStr,
thisNode
)
// Wait for data to come back from the wallet service.
const data = await this.waitForRPCResponse(rpcId)
return data
} catch (err) {
console.log('utxoIsValid() error: ', err)
wlogger.error('Error in adapters/bch.js/utxoIsValid()')
throw err
}
}
async getTokenData (tokenId) {
try {
// Throw an error if this IPFS node has not yet made a connection to a
// wallet service provider.
const selectedProvider =
this.ipfs.ipfsCoordAdapter.state.selectedServiceProvider
if (!selectedProvider) {
throw new Error('No BCH Wallet Service provider available yet.')
}
const rpcData = {
endpoint: 'getTokenData',
tokenId
}
// Generate a UUID for the call.
const rpcId = this.uid()
// Generate a JSON RPC command.
const cmd = this.jsonrpc.request(rpcId, 'bch', rpcData)
const cmdStr = JSON.stringify(cmd)
console.log('cmdStr: ', cmdStr)
// Send the RPC command to selected wallet service.
const thisNode = this.ipfs.ipfsCoordAdapter.ipfsCoord.thisNode
await this.ipfs.ipfsCoordAdapter.ipfsCoord.useCases.peer.sendPrivateMessage(
selectedProvider,
cmdStr,
thisNode
)
// Wait for data to come back from the wallet service.
const data = await this.waitForRPCResponse(rpcId)
return data
} catch (err) {
console.log('getTokenData() error: ', err)
wlogger.error('Error in adapters/bch.js/getTokenData()')
throw err
}
}
// Returns a promise that resolves to data when the RPC response is recieved.
async waitForRPCResponse (rpcId) {
try {
+117
View File
@@ -489,6 +489,8 @@ class BchRESTControllerLib {
* "pubkey": {
* "success": true,
* "publicKey": "033f267fec0f7eb2b27f8c2e3052b3d03b09d36b47de4082ffb638ffb334ef0eee"
* }
* }
* }
* }
*/
@@ -505,6 +507,121 @@ class BchRESTControllerLib {
}
}
/**
* @api {REST} /bch/utxoIsValid utxoIsValid
* @apiPermission public
* @apiName utxoIsValid
* @apiGroup REST BCH
* @apiDescription Verify if UTXO is valid
* Given a UTXO object (txid and vout), a full node is queried to verify that
* the UTXO still exists in the mempool (true), or if it has been spent (false).
*
* - jsonrpc: "" - jsonrpc version
* - id: "" - jsonrpc id
* - result: {} - Result of the petition with the RPC information
* - success: - Request status
* - isValid: - Boolean: true or false
*
* @apiExample Example usage:
* {"jsonrpc":"2.0","id":"555","method":"bch","params":{ "endpoint": "utxoIsValid", "utxo": {"tx_hash": "17754221b29f189532d4fc2ae89fb467ad2dede30fdec4854eb2129b3ba90d7a", "tx_pos": 0}}}
*
* @apiSuccessExample {json} Success-Response:
* {
* "jsonrpc":"2.0",
* "id":"555",
* "result":{
* "method":"bch",
* "reciever":"QmU86vLVbUY1UhziKB6rak7GPKRA2QHWvzNm2AjEvXNsT6",
* "value":{
* "success": true,
* "status": 200,
* "endpoint": "utxoIsValid",
* "isValid": true
* }
* }
*
* }
*/
async utxoIsValid (ctx) {
try {
const utxo = ctx.request.body.utxo
const data = await this.adapters.bch.utxoIsValid(utxo)
// console.log(`utxoIsValid data: ${JSON.stringify(data, null, 2)}`)
ctx.body = data
} catch (err) {
this.handleError(ctx, err)
}
}
/**
* @api {REST} /bch getTokenData
* @apiPermission public
* @apiName getTokenData
* @apiGroup REST BCH
* @apiDescription Get data associated with a token
* Given a token ID, this endpoint will retrieve the IPFS CIDs associated with
* the tokens mutable and immutable data. This is extension of the PS002
* specification for mutable data for tokens:
* https://github.com/Permissionless-Software-Foundation/specifications/blob/master/ps002-slp-mutable-data.md
*
* - jsonrpc: "" - jsonrpc version
* - id: "" - jsonrpc id
* - result: {} - Result of the petition with the RPC information
* - success: - Request status
* - getTokenData: - Address public key
*
* @apiExample Example usage:
* {"jsonrpc":"2.0","id":"555","method":"bch","params":{ "endpoint": "getTokenData", "tokenId": "c85042ab08a2099f27de880a30f9a42874202751d834c42717a20801a00aab0d" }}
*
* @apiSuccessExample {json} Success-Response:
* {
* "jsonrpc":"2.0",
* "id":"555",
* "result":{
* "method":"bch",
* "reciever":"QmU86vLVbUY1UhziKB6rak7GPKRA2QHWvzNm2AjEvXNsT6",
* "value":{
* "success": true,
* "status": 200,
* "endpoint": "getTokenData",
* "tokenData": {
* "genesisData": {
* "type": 1,
* "ticker": 'MT2',
* "name": 'Mutable Token',
* "tokenId": 'c85042ab08a2099f27de880a30f9a42874202751d834c42717a20801a00aab0d',
* "documentUri": 'ipfs://bafybeie7oxpsr7evcnlptecxfdhaqlot4732phukd2ekgvuzoir2frost4',
* "documentHash": '56ed1a5768076a318d02b5db64e125544dca57ab6b2cc7ca61dfa4645d244463',
* "decimals": 0,
* "mintBatonIsActive": true,
* "tokensInCirculationBN": '1000',
* "tokensInCirculationStr": '1000',
* "blockCreated": 739412,
* "totalBurned": '0',
* "totalMinted": '1000'
* },
* "immutableData": 'ipfs://bafybeie7oxpsr7evcnlptecxfdhaqlot4732phukd2ekgvuzoir2frost4',
* "mutableData": 'ipfs://bafybeigotuony53ley3n63hqwyxiqruqn5uamskmci6f645putnc46jju4'
* }
* }
* }
* }
*/
async getTokenData (ctx) {
try {
const tokenId = ctx.request.body.tokenId
const data = await this.adapters.bch.getTokenData(tokenId)
console.log(`getTokenData data: ${JSON.stringify(data, null, 2)}`)
ctx.body = data
} catch (err) {
this.handleError(ctx, err)
}
}
// DRY error handler
handleError (ctx, err) {
// If an HTTP status is specified by the buisiness logic, use that.
+10
View File
@@ -59,6 +59,8 @@ class BchRouter {
this.router.post('/txHistory', this.postTxHistory)
this.router.post('/txData', this.postTxData)
this.router.post('/pubkey', this.postPubKey)
this.router.post('/utxoIsValid', this.utxoIsValid)
this.router.post('/getTokenData', this.getTokenData)
// Attach the Controller routes to the Koa app.
app.use(this.router.routes())
@@ -96,6 +98,14 @@ class BchRouter {
async postPubKey (ctx, next) {
await _this.bchRESTController.pubKey(ctx, next)
}
async utxoIsValid (ctx, next) {
await _this.bchRESTController.utxoIsValid(ctx, next)
}
async getTokenData (ctx, next) {
await _this.bchRESTController.getTokenData(ctx, next)
}
}
module.exports = BchRouter
+60
View File
@@ -284,4 +284,64 @@ describe('#bch-use-case', () => {
}
})
})
describe('#utxoIsValid', () => {
it('should validate a utxo', async () => {
// Force connection to a wallet service
uut.ipfs.ipfsCoordAdapter.state = {
selectedServiceProvider: 'abc123'
}
// Mock depenencies
sandbox.stub(uut, 'waitForRPCResponse').resolves({ key: 'value' })
const utxo = { a: 'b' }
const result = await uut.utxoIsValid(utxo)
// console.log('result: ', result)
assert.equal(result.key, 'value')
})
it('should catch and throw an error', async () => {
try {
await uut.utxoIsValid()
assert.fail('Unexpected code path')
} catch (err) {
// console.log(err)
assert.equal(err.message, 'test error')
}
})
})
describe('#getTokenData', () => {
it('should validate a utxo', async () => {
// Force connection to a wallet service
uut.ipfs.ipfsCoordAdapter.state = {
selectedServiceProvider: 'abc123'
}
// Mock depenencies
sandbox.stub(uut, 'waitForRPCResponse').resolves({ key: 'value' })
const tokenId = 'blah'
const result = await uut.getTokenData(tokenId)
// console.log('result: ', result)
assert.equal(result.key, 'value')
})
it('should catch and throw an error', async () => {
try {
await uut.getTokenData()
assert.fail('Unexpected code path')
} catch (err) {
// console.log(err)
assert.equal(err.message, 'test error')
}
})
})
})
@@ -322,4 +322,76 @@ describe('#BCH-REST-Controller', () => {
assert.equal(ctx.status, 200)
})
})
describe('#utxoIsValid', () => {
it('should return 422 status on arbitrary error', async () => {
try {
// Force an error
sandbox
.stub(uut.adapters.bch, 'utxoIsValid')
.rejects(new Error('test error'))
ctx.request.body = {
utxo: 'blah'
}
await uut.utxoIsValid(ctx)
assert.fail('Unexpected result')
} catch (err) {
console.log('err: ', err)
assert.equal(err.status, 422)
assert.include(err.message, 'test error')
}
})
it('should return 200 status on success', async () => {
sandbox.stub(uut.adapters.bch, 'utxoIsValid').resolves({ status: 200 })
ctx.request.body = {
utxo: 'blah'
}
await uut.utxoIsValid(ctx)
// Assert the expected HTTP response
assert.equal(ctx.status, 200)
})
})
describe('#getTokenData', () => {
it('should return 422 status on arbitrary error', async () => {
try {
// Force an error
sandbox
.stub(uut.adapters.bch, 'getTokenData')
.rejects(new Error('test error'))
ctx.request.body = {
tokenId: 'blah'
}
await uut.getTokenData(ctx)
assert.fail('Unexpected result')
} catch (err) {
console.log('err: ', err)
assert.equal(err.status, 422)
assert.include(err.message, 'test error')
}
})
it('should return 200 status on success', async () => {
sandbox.stub(uut.adapters.bch, 'getTokenData').resolves({ status: 200 })
ctx.request.body = {
tokenId: 'blah'
}
await uut.getTokenData(ctx)
// Assert the expected HTTP response
assert.equal(ctx.status, 200)
})
})
})
+8
View File
@@ -93,6 +93,14 @@ class BchUseCaseMock {
return {}
}
async utxoIsValid() {
return {}
}
async getTokenData() {
return {}
}
async waitForRPCResponse () {
return {}
}