mirror of
https://github.com/fullstack-cash/bch-api.git
synced 2026-09-22 09:12:05 -07:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c4664ca173 | ||
|
|
11a7915cb8 | ||
|
|
06b944f36a | ||
|
|
9a8886121d | ||
|
|
89c6d48dfd | ||
|
|
4525b99f33 | ||
|
|
3d04507948 | ||
|
|
7e3a447973 |
Generated
+14
-22
@@ -381,9 +381,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@psf/bch-js": {
|
"@psf/bch-js": {
|
||||||
"version": "4.5.2",
|
"version": "4.5.4",
|
||||||
"resolved": "https://registry.npmjs.org/@psf/bch-js/-/bch-js-4.5.2.tgz",
|
"resolved": "https://registry.npmjs.org/@psf/bch-js/-/bch-js-4.5.4.tgz",
|
||||||
"integrity": "sha512-6TFTxBVZkxmT9mmykzAfwkEaH1PfJO5SxrQmhfoEy95sfHWVVODr5O8V4r0cxl3Xt6jdq52taSElWDnhYXvL3Q==",
|
"integrity": "sha512-u5YQt+nI15nftfuklXA54ppiR7Y2IJ+f6VDWRZ4eHRPqBg1vAwHMnqP68mSxSWcnJWMYagSTMtrX2NLahLf+jw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@psf/bip21": "^2.0.1",
|
"@psf/bip21": "^2.0.1",
|
||||||
"@psf/bip32-utils": "^0.13.1",
|
"@psf/bip32-utils": "^0.13.1",
|
||||||
@@ -453,14 +453,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"axios": {
|
|
||||||
"version": "0.21.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz",
|
|
||||||
"integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==",
|
|
||||||
"requires": {
|
|
||||||
"follow-redirects": "^1.10.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"mkdirp": {
|
"mkdirp": {
|
||||||
"version": "0.5.5",
|
"version": "0.5.5",
|
||||||
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
|
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
|
||||||
@@ -1076,9 +1068,9 @@
|
|||||||
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
|
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
|
||||||
},
|
},
|
||||||
"abortcontroller-polyfill": {
|
"abortcontroller-polyfill": {
|
||||||
"version": "1.5.0",
|
"version": "1.7.1",
|
||||||
"resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.1.tgz",
|
||||||
"integrity": "sha512-O6Xk757Jb4o0LMzMOMdWvxpHWrQzruYBaUruFaIOfAQRnWFxfdXYobw12jrVHGtoXk6WiiyYzc0QWN9aL62HQA=="
|
"integrity": "sha512-yml9NiDEH4M4p0G4AcPkg8AAa4mF3nfYF28VQxaokpO67j9H7gWgmsVWJ/f1Rn+PzsnDYvzJzWIQzCqDKRvWlA=="
|
||||||
},
|
},
|
||||||
"abstract-leveldown": {
|
"abstract-leveldown": {
|
||||||
"version": "6.2.3",
|
"version": "6.2.3",
|
||||||
@@ -7206,9 +7198,9 @@
|
|||||||
"integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ=="
|
"integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ=="
|
||||||
},
|
},
|
||||||
"npm": {
|
"npm": {
|
||||||
"version": "6.14.10",
|
"version": "6.14.11",
|
||||||
"resolved": "https://registry.npmjs.org/npm/-/npm-6.14.10.tgz",
|
"resolved": "https://registry.npmjs.org/npm/-/npm-6.14.11.tgz",
|
||||||
"integrity": "sha512-FT23Qy/JMA+qxEYReMOr1MY7642fKn8Onn+72LASPi872Owvmw0svm+/DXTHOC3yO9CheEO+EslyXEpdBdRtIA==",
|
"integrity": "sha512-1Zh7LjuIoEhIyjkBflSSGzfjuPQwDlghNloppjruOH5bmj9midT9qcNT0tRUZRR04shU9ekrxNy9+UTBrqeBpQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"JSONStream": "^1.3.5",
|
"JSONStream": "^1.3.5",
|
||||||
@@ -7248,7 +7240,7 @@
|
|||||||
"infer-owner": "^1.0.4",
|
"infer-owner": "^1.0.4",
|
||||||
"inflight": "~1.0.6",
|
"inflight": "~1.0.6",
|
||||||
"inherits": "^2.0.4",
|
"inherits": "^2.0.4",
|
||||||
"ini": "^1.3.5",
|
"ini": "^1.3.8",
|
||||||
"init-package-json": "^1.10.3",
|
"init-package-json": "^1.10.3",
|
||||||
"is-cidr": "^3.0.0",
|
"is-cidr": "^3.0.0",
|
||||||
"json-parse-better-errors": "^1.0.2",
|
"json-parse-better-errors": "^1.0.2",
|
||||||
@@ -8615,7 +8607,7 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"ini": {
|
"ini": {
|
||||||
"version": "1.3.5",
|
"version": "1.3.8",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
@@ -12624,9 +12616,9 @@
|
|||||||
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
||||||
},
|
},
|
||||||
"socket.io-parser": {
|
"socket.io-parser": {
|
||||||
"version": "3.3.1",
|
"version": "3.3.2",
|
||||||
"resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.2.tgz",
|
||||||
"integrity": "sha512-1QLvVAe8dTz+mKmZ07Swxt+LAo4Y1ff50rlyoEx00TQmDFVQYPfcqGvIDJLGaBdhdNCecXtyKpD+EgKGcmmbuQ==",
|
"integrity": "sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"component-emitter": "~1.3.0",
|
"component-emitter": "~1.3.0",
|
||||||
"debug": "~3.1.0",
|
"debug": "~3.1.0",
|
||||||
|
|||||||
+1
-1
@@ -29,7 +29,7 @@
|
|||||||
"node": ">=10.15.1"
|
"node": ">=10.15.1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@psf/bch-js": "^4.5.2",
|
"@psf/bch-js": "^4.5.4",
|
||||||
"apidoc": "^0.23.0",
|
"apidoc": "^0.23.0",
|
||||||
"axios": "^0.21.1",
|
"axios": "^0.21.1",
|
||||||
"bitcore-lib-cash": "^8.23.1",
|
"bitcore-lib-cash": "^8.23.1",
|
||||||
|
|||||||
@@ -135,7 +135,7 @@ class Electrum {
|
|||||||
const { msg, status } = _this.routeUtils.decodeError(err)
|
const { msg, status } = _this.routeUtils.decodeError(err)
|
||||||
if (msg) {
|
if (msg) {
|
||||||
res.status(status)
|
res.status(status)
|
||||||
return res.json({ error: msg })
|
return res.json({ success: false, error: msg })
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handle error patterns specific to this route.
|
// Handle error patterns specific to this route.
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ class Encryption {
|
|||||||
const { msg, status } = _this.routeUtils.decodeError(err)
|
const { msg, status } = _this.routeUtils.decodeError(err)
|
||||||
if (msg) {
|
if (msg) {
|
||||||
res.status(status)
|
res.status(status)
|
||||||
return res.json({ error: msg })
|
return res.json({ success: false, error: msg })
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handle error patterns specific to this route.
|
// Handle error patterns specific to this route.
|
||||||
|
|||||||
@@ -175,8 +175,17 @@ function decodeError (err) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Handle general Error objects.
|
||||||
|
if (err.message) {
|
||||||
|
return {
|
||||||
|
message: err.message,
|
||||||
|
status: 422
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return { msg: false, status: 500 }
|
return { msg: false, status: 500 }
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
console.error('unhandled error in route-utils.js/decodeError(): ', err)
|
||||||
wlogger.error('unhandled error in route-utils.js/decodeError(): ', err)
|
wlogger.error('unhandled error in route-utils.js/decodeError(): ', err)
|
||||||
return { msg: false, status: 500 }
|
return { msg: false, status: 500 }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1896,7 +1896,8 @@ class Slp {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(`sendQty: ${JSON.stringify(sendQty, null, 2)}`)
|
// console.log('sendQty: ', sendQty)
|
||||||
|
// console.log(`tokenUtxos: `, tokenUtxos)
|
||||||
const opReturn = await _this.bchjs.SLP.TokenType1.generateSendOpReturn(
|
const opReturn = await _this.bchjs.SLP.TokenType1.generateSendOpReturn(
|
||||||
tokenUtxos,
|
tokenUtxos,
|
||||||
sendQty
|
sendQty
|
||||||
@@ -1998,9 +1999,11 @@ class Slp {
|
|||||||
|
|
||||||
// Decode the error message.
|
// Decode the error message.
|
||||||
const { msg, status } = routeUtils.decodeError(err)
|
const { msg, status } = routeUtils.decodeError(err)
|
||||||
|
console.log('msg: ', msg)
|
||||||
|
console.log('status: ', status)
|
||||||
if (msg) {
|
if (msg) {
|
||||||
res.status(status)
|
res.status(status)
|
||||||
return res.json({ error: msg })
|
return res.json({ error: msg, message: msg, success: false })
|
||||||
}
|
}
|
||||||
|
|
||||||
res.status(500)
|
res.status(500)
|
||||||
|
|||||||
@@ -154,8 +154,17 @@ class RouteUtils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Handle general Error objects.
|
||||||
|
if (err.message) {
|
||||||
|
return {
|
||||||
|
msg: err.message,
|
||||||
|
status: 422
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return { msg: false, status: 500 }
|
return { msg: false, status: 500 }
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
console.error('unhandled error in route-utils.js/decodeError(): ', err)
|
||||||
wlogger.error('unhandled error in route-utils.js/decodeError(): ', err)
|
wlogger.error('unhandled error in route-utils.js/decodeError(): ', err)
|
||||||
return { msg: false, status: 500 }
|
return { msg: false, status: 500 }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,11 +199,11 @@ describe('#Electrumx', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
describe('#getUtxos', () => {
|
describe('#getUtxos', () => {
|
||||||
it('should throw 400 if address is empty', async () => {
|
it('should throw 422 if address is empty', async () => {
|
||||||
const result = await electrumxRoute.getUtxos(req, res)
|
const result = await electrumxRoute.getUtxos(req, res)
|
||||||
// console.log(`result: ${util.inspect(result)}`)
|
// console.log(`result: ${util.inspect(result)}`)
|
||||||
|
|
||||||
assert.equal(res.statusCode, 400, 'Expect 400 status code')
|
assert.equal(res.statusCode, 422, 'Expect 422 status code')
|
||||||
|
|
||||||
assert.property(result, 'error')
|
assert.property(result, 'error')
|
||||||
assert.include(result.error, 'Unsupported address format')
|
assert.include(result.error, 'Unsupported address format')
|
||||||
@@ -233,7 +233,7 @@ describe('#Electrumx', () => {
|
|||||||
const result = await electrumxRoute.getUtxos(req, res)
|
const result = await electrumxRoute.getUtxos(req, res)
|
||||||
// console.log(`result: ${util.inspect(result)}`)
|
// console.log(`result: ${util.inspect(result)}`)
|
||||||
|
|
||||||
assert.equal(res.statusCode, 400, 'Expect 400 status code')
|
assert.equal(res.statusCode, 422, 'Expect 422 status code')
|
||||||
|
|
||||||
assert.property(result, 'error')
|
assert.property(result, 'error')
|
||||||
assert.include(result.error, 'Unsupported address format')
|
assert.include(result.error, 'Unsupported address format')
|
||||||
@@ -1063,7 +1063,7 @@ describe('#Electrumx', () => {
|
|||||||
const result = await electrumxRoute.getBalance(req, res)
|
const result = await electrumxRoute.getBalance(req, res)
|
||||||
// console.log(`result: ${util.inspect(result)}`)
|
// console.log(`result: ${util.inspect(result)}`)
|
||||||
|
|
||||||
assert.equal(res.statusCode, 400, 'Expect 400 status code')
|
assert.equal(res.statusCode, 422, 'Expect 422 status code')
|
||||||
|
|
||||||
assert.property(result, 'error')
|
assert.property(result, 'error')
|
||||||
assert.include(result.error, 'Unsupported address format')
|
assert.include(result.error, 'Unsupported address format')
|
||||||
@@ -1093,7 +1093,7 @@ describe('#Electrumx', () => {
|
|||||||
const result = await electrumxRoute.getBalance(req, res)
|
const result = await electrumxRoute.getBalance(req, res)
|
||||||
// console.log(`result: ${util.inspect(result)}`)
|
// console.log(`result: ${util.inspect(result)}`)
|
||||||
|
|
||||||
assert.equal(res.statusCode, 400, 'Expect 400 status code')
|
assert.equal(res.statusCode, 422, 'Expect 422 status code')
|
||||||
|
|
||||||
assert.property(result, 'error')
|
assert.property(result, 'error')
|
||||||
assert.include(result.error, 'Unsupported address format')
|
assert.include(result.error, 'Unsupported address format')
|
||||||
@@ -1350,7 +1350,7 @@ describe('#Electrumx', () => {
|
|||||||
const result = await electrumxRoute.getTransactions(req, res)
|
const result = await electrumxRoute.getTransactions(req, res)
|
||||||
// console.log(`result: ${util.inspect(result)}`)
|
// console.log(`result: ${util.inspect(result)}`)
|
||||||
|
|
||||||
assert.equal(res.statusCode, 400, 'Expect 400 status code')
|
assert.equal(res.statusCode, 422, 'Expect 422 status code')
|
||||||
|
|
||||||
assert.property(result, 'error')
|
assert.property(result, 'error')
|
||||||
assert.include(result.error, 'Unsupported address format')
|
assert.include(result.error, 'Unsupported address format')
|
||||||
@@ -1380,7 +1380,7 @@ describe('#Electrumx', () => {
|
|||||||
const result = await electrumxRoute.getTransactions(req, res)
|
const result = await electrumxRoute.getTransactions(req, res)
|
||||||
// console.log(`result: ${util.inspect(result)}`)
|
// console.log(`result: ${util.inspect(result)}`)
|
||||||
|
|
||||||
assert.equal(res.statusCode, 400, 'Expect 400 status code')
|
assert.equal(res.statusCode, 422, 'Expect 422 status code')
|
||||||
|
|
||||||
assert.property(result, 'error')
|
assert.property(result, 'error')
|
||||||
assert.include(result.error, 'Unsupported address format')
|
assert.include(result.error, 'Unsupported address format')
|
||||||
@@ -1645,7 +1645,7 @@ describe('#Electrumx', () => {
|
|||||||
const result = await electrumxRoute.getMempool(req, res)
|
const result = await electrumxRoute.getMempool(req, res)
|
||||||
// console.log(`result: ${util.inspect(result)}`)
|
// console.log(`result: ${util.inspect(result)}`)
|
||||||
|
|
||||||
assert.equal(res.statusCode, 400, 'Expect 400 status code')
|
assert.equal(res.statusCode, 422, 'Expect 422 status code')
|
||||||
|
|
||||||
assert.property(result, 'error')
|
assert.property(result, 'error')
|
||||||
assert.include(result.error, 'Unsupported address format')
|
assert.include(result.error, 'Unsupported address format')
|
||||||
@@ -1675,7 +1675,7 @@ describe('#Electrumx', () => {
|
|||||||
const result = await electrumxRoute.getMempool(req, res)
|
const result = await electrumxRoute.getMempool(req, res)
|
||||||
// console.log(`result: ${util.inspect(result)}`)
|
// console.log(`result: ${util.inspect(result)}`)
|
||||||
|
|
||||||
assert.equal(res.statusCode, 400, 'Expect 400 status code')
|
assert.equal(res.statusCode, 422, 'Expect 422 status code')
|
||||||
|
|
||||||
assert.property(result, 'error')
|
assert.property(result, 'error')
|
||||||
assert.include(result.error, 'Unsupported address format')
|
assert.include(result.error, 'Unsupported address format')
|
||||||
|
|||||||
@@ -110,8 +110,8 @@ describe('#slp', () => {
|
|||||||
req.body.tokenUtxos = [
|
req.body.tokenUtxos = [
|
||||||
{
|
{
|
||||||
tokenId:
|
tokenId:
|
||||||
'0a321bff9761f28e06a268b14711274bb77617410a16807bd0437ef234a072b1',
|
'38e97c5d7d3585a2cbf3f9580c82ca33985f9cb0845d4dcce220cb709f9538b0',
|
||||||
decimals: 0,
|
decimals: 8,
|
||||||
tokenQty: 2
|
tokenQty: 2
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
+2
-2
@@ -1363,8 +1363,8 @@ describe('#SLP', () => {
|
|||||||
req.body.tokenUtxos = [
|
req.body.tokenUtxos = [
|
||||||
{
|
{
|
||||||
tokenId:
|
tokenId:
|
||||||
'0a321bff9761f28e06a268b14711274bb77617410a16807bd0437ef234a072b1',
|
'38e97c5d7d3585a2cbf3f9580c82ca33985f9cb0845d4dcce220cb709f9538b0',
|
||||||
decimals: 0,
|
decimals: 8,
|
||||||
tokenQty: 2
|
tokenQty: 2
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
Reference in New Issue
Block a user