mirror of
https://github.com/fullstack-cash/bch-api.git
synced 2026-09-22 09:12:05 -07:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4289cf4f7c | ||
|
|
f04449be72 | ||
|
|
a0f9d065f9 | ||
|
|
20f2e20bcb | ||
|
|
b410b501a1 | ||
|
|
31d430e30e | ||
|
|
82d8e39ca4 | ||
|
|
e60f4ff144 | ||
|
|
156ea0ef30 |
+2
-2
@@ -24,8 +24,8 @@
|
|||||||
"coverage": "nyc report --reporter=text-lcov | coveralls",
|
"coverage": "nyc report --reporter=text-lcov | coveralls",
|
||||||
"coverage:report": "export NETWORK=mainnet && nyc --reporter=html mocha --timeout 25000 test/v4/",
|
"coverage:report": "export NETWORK=mainnet && nyc --reporter=html mocha --timeout 25000 test/v4/",
|
||||||
"docs": "./node_modules/.bin/apidoc -i src/routes/v4 -o docs",
|
"docs": "./node_modules/.bin/apidoc -i src/routes/v4 -o docs",
|
||||||
"test:temp1": "export NETWORK=mainnet && export TEST=integration && export SLPDB_URL=https://slpdb.fountainhead.cash/ && mocha --exit --timeout 25000 -g '#nft' test/v4/integration/",
|
"test:temp1": "export NETWORK=mainnet && export TEST=integration && mocha -g '#balanceBulk' --exit --timeout 30000 test/v5/",
|
||||||
"test:temp2": "mocha -g '#getNftGroup' --exit --timeout 30000 test/v4/"
|
"test:temp2": "export NETWORK=mainnet && mocha -g '#balanceBulk' --exit --timeout 30000 test/v5/"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=10.15.1"
|
"node": ">=10.15.1"
|
||||||
|
|||||||
@@ -75,7 +75,6 @@ const miningV5 = new MiningV5()
|
|||||||
const rawtransactionsV5 = new RawtransactionsV5()
|
const rawtransactionsV5 = new RawtransactionsV5()
|
||||||
const slpV5 = new SlpV5()
|
const slpV5 = new SlpV5()
|
||||||
const electrumxv5 = new ElectrumXV5()
|
const electrumxv5 = new ElectrumXV5()
|
||||||
electrumxv5.connect()
|
|
||||||
const encryptionv5 = new EncryptionV5()
|
const encryptionv5 = new EncryptionV5()
|
||||||
const pricev5 = new PriceV5()
|
const pricev5 = new PriceV5()
|
||||||
const utilV5 = new UtilV5({ electrumx: electrumxv5 })
|
const utilV5 = new UtilV5({ electrumx: electrumxv5 })
|
||||||
|
|||||||
+1010
-1153
File diff suppressed because it is too large
Load Diff
+1723
-1607
File diff suppressed because it is too large
Load Diff
@@ -12,7 +12,7 @@ const chai = require('chai')
|
|||||||
const assert = chai.assert
|
const assert = chai.assert
|
||||||
const sinon = require('sinon')
|
const sinon = require('sinon')
|
||||||
|
|
||||||
const Blockchain = require('../../src/routes/v4/full-node/blockchain')
|
const Blockchain = require('../../src/routes/v5/full-node/blockchain')
|
||||||
const uut = new Blockchain()
|
const uut = new Blockchain()
|
||||||
|
|
||||||
const util = require('util')
|
const util = require('util')
|
||||||
|
|||||||
+1
-1
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
const chai = require('chai')
|
const chai = require('chai')
|
||||||
const assert = chai.assert
|
const assert = chai.assert
|
||||||
const ControlRoute = require('../../src/routes/v4/full-node/control')
|
const ControlRoute = require('../../src/routes/v5/full-node/control')
|
||||||
const uut = new ControlRoute()
|
const uut = new ControlRoute()
|
||||||
const sinon = require('sinon')
|
const sinon = require('sinon')
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ const sinon = require('sinon')
|
|||||||
if (!process.env.TEST) process.env.TEST = 'unit'
|
if (!process.env.TEST) process.env.TEST = 'unit'
|
||||||
|
|
||||||
// Only load blockbook library after setting BLOCKBOOK_URL env var.
|
// Only load blockbook library after setting BLOCKBOOK_URL env var.
|
||||||
const EncryptionRoute = require('../../src/routes/v4/encryption')
|
const EncryptionRoute = require('../../src/routes/v5/encryption')
|
||||||
const encryptionRoute = new EncryptionRoute()
|
const encryptionRoute = new EncryptionRoute()
|
||||||
|
|
||||||
// Mocking data.
|
// Mocking data.
|
||||||
|
|||||||
+1
-1
@@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
const chai = require('chai')
|
const chai = require('chai')
|
||||||
const assert = chai.assert
|
const assert = chai.assert
|
||||||
const MiningRoute = require('../../src/routes/v4/full-node/mining')
|
const MiningRoute = require('../../src/routes/v5/full-node/mining')
|
||||||
const uut = new MiningRoute()
|
const uut = new MiningRoute()
|
||||||
|
|
||||||
// const nock = require('nock') // HTTP mocking
|
// const nock = require('nock') // HTTP mocking
|
||||||
|
|||||||
@@ -20,10 +20,25 @@ const utxos = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
const balance = {
|
const balance = {
|
||||||
confirmed: 7000,
|
success: true,
|
||||||
unconfirmed: 0
|
balance: {
|
||||||
|
confirmed: 7000,
|
||||||
|
unconfirmed: 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const balances = {
|
||||||
|
success: true,
|
||||||
|
balances: [
|
||||||
|
{
|
||||||
|
balance: { confirmed: 7000, unconfirmed: 0 },
|
||||||
|
address: 'bitcoincash:qp3sn6vlwz28ntmf3wmyra7jqttfx7z6zgtkygjhc7'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
balance: { confirmed: 7000, unconfirmed: 0 },
|
||||||
|
address: 'bitcoincash:qrdka2205f4hyukutc2g0s6lykperc8nsu5u2ddpqf'
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
const txHistory = [
|
const txHistory = [
|
||||||
{
|
{
|
||||||
height: 601861,
|
height: 601861,
|
||||||
@@ -44,7 +59,8 @@ const txDetails = {
|
|||||||
blocktime: 1578327094,
|
blocktime: 1578327094,
|
||||||
confirmations: 31861,
|
confirmations: 31861,
|
||||||
hash: '4db095f34d632a4daf942142c291f1f2abb5ba2e1ccac919d85bdc2f671fb251',
|
hash: '4db095f34d632a4daf942142c291f1f2abb5ba2e1ccac919d85bdc2f671fb251',
|
||||||
hex: '020000000265d13ef402840c8a51f39779afb7ae4d49e4b0a3c24a3d0e7742038f2c679667010000006441dd1dd72770cadede1a7fd0363574846c48468a398ddfa41a9677c74cac8d2652b682743725a3b08c6c2021a629011e11a264d9036e9d5311e35b5f4937ca7b4e4121020797d8fd4d2fa6fd7cdeabe2526bfea2b90525d6e8ad506ec4ee3c53885aa309ffffffff65d13ef402840c8a51f39779afb7ae4d49e4b0a3c24a3d0e7742038f2c679667000000006441347d7f218c11c04487c1ad8baac28928fb10e5054cd4494b94d078cfa04ccf68e064fb188127ff656c0b98e9ce87f036d183925d0d0860605877d61e90375f774121028a53f95eb631b460854fc836b2e5d31cad16364b4dc3d970babfbdcc3f2e4954ffffffff035ac355000000000017a914189ce02e332548f4804bac65cba68202c9dbf822878dfd0800000000001976a914285bb350881b21ac89724c6fb6dc914d096cd53b88acf9ef3100000000001976a91445f1f1c4a9b9419a5088a3e9c24a293d7a150e6488ac00000000',
|
hex:
|
||||||
|
'020000000265d13ef402840c8a51f39779afb7ae4d49e4b0a3c24a3d0e7742038f2c679667010000006441dd1dd72770cadede1a7fd0363574846c48468a398ddfa41a9677c74cac8d2652b682743725a3b08c6c2021a629011e11a264d9036e9d5311e35b5f4937ca7b4e4121020797d8fd4d2fa6fd7cdeabe2526bfea2b90525d6e8ad506ec4ee3c53885aa309ffffffff65d13ef402840c8a51f39779afb7ae4d49e4b0a3c24a3d0e7742038f2c679667000000006441347d7f218c11c04487c1ad8baac28928fb10e5054cd4494b94d078cfa04ccf68e064fb188127ff656c0b98e9ce87f036d183925d0d0860605877d61e90375f774121028a53f95eb631b460854fc836b2e5d31cad16364b4dc3d970babfbdcc3f2e4954ffffffff035ac355000000000017a914189ce02e332548f4804bac65cba68202c9dbf822878dfd0800000000001976a914285bb350881b21ac89724c6fb6dc914d096cd53b88acf9ef3100000000001976a91445f1f1c4a9b9419a5088a3e9c24a293d7a150e6488ac00000000',
|
||||||
locktime: 0,
|
locktime: 0,
|
||||||
size: 392,
|
size: 392,
|
||||||
time: 1578327094,
|
time: 1578327094,
|
||||||
@@ -53,8 +69,10 @@ const txDetails = {
|
|||||||
vin: [
|
vin: [
|
||||||
{
|
{
|
||||||
scriptSig: {
|
scriptSig: {
|
||||||
asm: 'dd1dd72770cadede1a7fd0363574846c48468a398ddfa41a9677c74cac8d2652b682743725a3b08c6c2021a629011e11a264d9036e9d5311e35b5f4937ca7b4e[ALL|FORKID] 020797d8fd4d2fa6fd7cdeabe2526bfea2b90525d6e8ad506ec4ee3c53885aa309',
|
asm:
|
||||||
hex: '41dd1dd72770cadede1a7fd0363574846c48468a398ddfa41a9677c74cac8d2652b682743725a3b08c6c2021a629011e11a264d9036e9d5311e35b5f4937ca7b4e4121020797d8fd4d2fa6fd7cdeabe2526bfea2b90525d6e8ad506ec4ee3c53885aa309'
|
'dd1dd72770cadede1a7fd0363574846c48468a398ddfa41a9677c74cac8d2652b682743725a3b08c6c2021a629011e11a264d9036e9d5311e35b5f4937ca7b4e[ALL|FORKID] 020797d8fd4d2fa6fd7cdeabe2526bfea2b90525d6e8ad506ec4ee3c53885aa309',
|
||||||
|
hex:
|
||||||
|
'41dd1dd72770cadede1a7fd0363574846c48468a398ddfa41a9677c74cac8d2652b682743725a3b08c6c2021a629011e11a264d9036e9d5311e35b5f4937ca7b4e4121020797d8fd4d2fa6fd7cdeabe2526bfea2b90525d6e8ad506ec4ee3c53885aa309'
|
||||||
},
|
},
|
||||||
sequence: 4294967295,
|
sequence: 4294967295,
|
||||||
txid: '6796672c8f0342770e3d4ac2a3b0e4494daeb7af7997f3518a0c8402f43ed165',
|
txid: '6796672c8f0342770e3d4ac2a3b0e4494daeb7af7997f3518a0c8402f43ed165',
|
||||||
@@ -62,8 +80,10 @@ const txDetails = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
scriptSig: {
|
scriptSig: {
|
||||||
asm: '347d7f218c11c04487c1ad8baac28928fb10e5054cd4494b94d078cfa04ccf68e064fb188127ff656c0b98e9ce87f036d183925d0d0860605877d61e90375f77[ALL|FORKID] 028a53f95eb631b460854fc836b2e5d31cad16364b4dc3d970babfbdcc3f2e4954',
|
asm:
|
||||||
hex: '41347d7f218c11c04487c1ad8baac28928fb10e5054cd4494b94d078cfa04ccf68e064fb188127ff656c0b98e9ce87f036d183925d0d0860605877d61e90375f774121028a53f95eb631b460854fc836b2e5d31cad16364b4dc3d970babfbdcc3f2e4954'
|
'347d7f218c11c04487c1ad8baac28928fb10e5054cd4494b94d078cfa04ccf68e064fb188127ff656c0b98e9ce87f036d183925d0d0860605877d61e90375f77[ALL|FORKID] 028a53f95eb631b460854fc836b2e5d31cad16364b4dc3d970babfbdcc3f2e4954',
|
||||||
|
hex:
|
||||||
|
'41347d7f218c11c04487c1ad8baac28928fb10e5054cd4494b94d078cfa04ccf68e064fb188127ff656c0b98e9ce87f036d183925d0d0860605877d61e90375f774121028a53f95eb631b460854fc836b2e5d31cad16364b4dc3d970babfbdcc3f2e4954'
|
||||||
},
|
},
|
||||||
sequence: 4294967295,
|
sequence: 4294967295,
|
||||||
txid: '6796672c8f0342770e3d4ac2a3b0e4494daeb7af7997f3518a0c8402f43ed165',
|
txid: '6796672c8f0342770e3d4ac2a3b0e4494daeb7af7997f3518a0c8402f43ed165',
|
||||||
@@ -86,7 +106,8 @@ const txDetails = {
|
|||||||
n: 1,
|
n: 1,
|
||||||
scriptPubKey: {
|
scriptPubKey: {
|
||||||
addresses: ['bitcoincash: qq59hv6s3qdjrtyfwfxxldkuj9xsjmx48vrz882knz'],
|
addresses: ['bitcoincash: qq59hv6s3qdjrtyfwfxxldkuj9xsjmx48vrz882knz'],
|
||||||
asm: 'OP_DUP OP_HASH160 285bb350881b21ac89724c6fb6dc914d096cd53b OP_EQUALVERIFY OP_CHECKSIG',
|
asm:
|
||||||
|
'OP_DUP OP_HASH160 285bb350881b21ac89724c6fb6dc914d096cd53b OP_EQUALVERIFY OP_CHECKSIG',
|
||||||
hex: '76a914285bb350881b21ac89724c6fb6dc914d096cd53b88ac',
|
hex: '76a914285bb350881b21ac89724c6fb6dc914d096cd53b88ac',
|
||||||
reqSigs: 1,
|
reqSigs: 1,
|
||||||
type: 'pubkeyhash'
|
type: 'pubkeyhash'
|
||||||
@@ -97,7 +118,8 @@ const txDetails = {
|
|||||||
n: 2,
|
n: 2,
|
||||||
scriptPubKey: {
|
scriptPubKey: {
|
||||||
addresses: ['bitcoincash: qpzlruwy4xu5rxjs3z37nsj29y7h59gwvsu4ddp0u4'],
|
addresses: ['bitcoincash: qpzlruwy4xu5rxjs3z37nsj29y7h59gwvsu4ddp0u4'],
|
||||||
asm: 'OP_DUP OP_HASH160 45f1f1c4a9b9419a5088a3e9c24a293d7a150e64 OP_EQUALVERIFY OP_CHECKSIG',
|
asm:
|
||||||
|
'OP_DUP OP_HASH160 45f1f1c4a9b9419a5088a3e9c24a293d7a150e64 OP_EQUALVERIFY OP_CHECKSIG',
|
||||||
hex: '76a91445f1f1c4a9b9419a5088a3e9c24a293d7a150e6488ac',
|
hex: '76a91445f1f1c4a9b9419a5088a3e9c24a293d7a150e6488ac',
|
||||||
reqSigs: 1,
|
reqSigs: 1,
|
||||||
type: 'pubkeyhash'
|
type: 'pubkeyhash'
|
||||||
@@ -118,5 +140,6 @@ module.exports = {
|
|||||||
txHistory,
|
txHistory,
|
||||||
mempool,
|
mempool,
|
||||||
txDetails,
|
txDetails,
|
||||||
blockHeaders
|
blockHeaders,
|
||||||
|
balances
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -13,7 +13,7 @@ const chai = require('chai')
|
|||||||
const assert = chai.assert
|
const assert = chai.assert
|
||||||
const sinon = require('sinon')
|
const sinon = require('sinon')
|
||||||
|
|
||||||
const Price = require('../../src/routes/v4/price')
|
const Price = require('../../src/routes/v5/price')
|
||||||
let uut
|
let uut
|
||||||
|
|
||||||
// Mocking data.
|
// Mocking data.
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
const chai = require('chai')
|
const chai = require('chai')
|
||||||
const assert = chai.assert
|
const assert = chai.assert
|
||||||
const Rawtransactions = require('../../src/routes/v4/full-node/rawtransactions')
|
const Rawtransactions = require('../../src/routes/v5/full-node/rawtransactions')
|
||||||
const uut = new Rawtransactions()
|
const uut = new Rawtransactions()
|
||||||
|
|
||||||
// const nock = require('nock') // HTTP mocking
|
// const nock = require('nock') // HTTP mocking
|
||||||
|
|||||||
+2
-2
@@ -40,11 +40,11 @@ if (process.env.TEST === 'unit') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Prepare the slpRoute for stubbing dependcies on slpjs.
|
// Prepare the slpRoute for stubbing dependcies on slpjs.
|
||||||
const SlpRoute = require('../../src/routes/v4/slp')
|
const SlpRoute = require('../../src/routes/v5/slp')
|
||||||
const slpRoute = new SlpRoute()
|
const slpRoute = new SlpRoute()
|
||||||
|
|
||||||
// const pathStub = {} // Used to stub methods within slpjs.
|
// const pathStub = {} // Used to stub methods within slpjs.
|
||||||
// const slpRouteStub = proxyquire('../../src/routes/v4/slp', { slpjs: pathStub })
|
// const slpRouteStub = proxyquire('../../src/routes/v5/slp', { slpjs: pathStub })
|
||||||
|
|
||||||
// Mocking data.
|
// Mocking data.
|
||||||
const { mockReq, mockRes } = require('./mocks/express-mocks')
|
const { mockReq, mockRes } = require('./mocks/express-mocks')
|
||||||
|
|||||||
+2
-2
@@ -19,8 +19,8 @@ const nock = require('nock') // HTTP mocking
|
|||||||
const sinon = require('sinon')
|
const sinon = require('sinon')
|
||||||
|
|
||||||
// Local libraries
|
// Local libraries
|
||||||
const Electrumx = require('../../src/routes/v4/electrumx')
|
const Electrumx = require('../../src/routes/v5/electrumx')
|
||||||
const UtilRoute = require('../../src/routes/v4/util')
|
const UtilRoute = require('../../src/routes/v5/util')
|
||||||
|
|
||||||
let originalEnvVars // Used during transition from integration to unit tests.
|
let originalEnvVars // Used during transition from integration to unit tests.
|
||||||
|
|
||||||
|
|||||||
+3
-2
@@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
const chai = require('chai')
|
const chai = require('chai')
|
||||||
const assert = chai.assert
|
const assert = chai.assert
|
||||||
const xpubRoute = require('../../src/routes/v4/xpub')
|
const xpubRoute = require('../../src/routes/v5/xpub')
|
||||||
const nock = require('nock') // HTTP mocking
|
const nock = require('nock') // HTTP mocking
|
||||||
|
|
||||||
// let originalUrl // Used during transition from integration to unit tests.
|
// let originalUrl // Used during transition from integration to unit tests.
|
||||||
@@ -119,7 +119,8 @@ describe('#XPUBRouter', () => {
|
|||||||
})
|
})
|
||||||
*/
|
*/
|
||||||
it('should create an address from xpub', async () => {
|
it('should create an address from xpub', async () => {
|
||||||
req.params.xpub = 'tpubDHTK2jqg73w3GwoiHfAMbMYML1HN8FhrUxD9rFgbSgHXdwwrY6pAFqKDfUHhqw7vreaZty5hPGjb1S7ZPQeMmu6TFHAKfY9tJpYbvaGjPRM'
|
req.params.xpub =
|
||||||
|
'tpubDHTK2jqg73w3GwoiHfAMbMYML1HN8FhrUxD9rFgbSgHXdwwrY6pAFqKDfUHhqw7vreaZty5hPGjb1S7ZPQeMmu6TFHAKfY9tJpYbvaGjPRM'
|
||||||
|
|
||||||
// Mock the Insight URL for unit tests.
|
// Mock the Insight URL for unit tests.
|
||||||
// TODO add unit test
|
// TODO add unit test
|
||||||
|
|||||||
Reference in New Issue
Block a user