Merge branch 'master' into production

This commit is contained in:
Chris Troutner
2022-07-11 04:13:12 +02:00
2 changed files with 48 additions and 10 deletions
+20 -8
View File
@@ -96,20 +96,32 @@ class Electrum {
})
}
// Ensure the address is in cash address format.
const cashAddr = _this.bchjs.Address.toCashAddress(address)
// Prevent a common user error. Ensure they are using the correct network address.
const networkIsValid = _this.routeUtils.validateNetwork(cashAddr)
if (!networkIsValid) {
if (!address) {
res.status(400)
return res.json({
success: false,
error:
'Invalid network. Trying to use a testnet address on mainnet, or vice versa.'
error: 'address is empty'
})
}
let cashAddr = address
if (!address.includes('ecash')) {
// Ensure the address is in cash address format.
cashAddr = _this.bchjs.Address.toCashAddress(address)
// Prevent a common user error. Ensure they are using the correct network address.
const networkIsValid = _this.routeUtils.validateNetwork(cashAddr)
if (!networkIsValid) {
res.status(400)
return res.json({
success: false,
error:
'Invalid network. Trying to use a testnet address on mainnet, or vice versa.'
})
}
}
wlogger.debug(
'Executing electrumx/getBalance with this address: ',
cashAddr
+28 -2
View File
@@ -113,10 +113,10 @@ describe('#Electrumx', () => {
const result = await electrumxRoute.getBalance(req, res)
// console.log(`result: ${util.inspect(result)}`)
assert.equal(res.statusCode, 422, 'Expect 422 status code')
assert.equal(res.statusCode, 400, 'Expect 400 status code')
assert.property(result, 'error')
assert.include(result.error, 'Unsupported address format')
assert.include(result.error, 'address is empty')
assert.property(result, 'success')
assert.equal(result.success, false)
@@ -207,7 +207,33 @@ describe('#Electrumx', () => {
assert.property(result.balance, 'confirmed')
assert.property(result.balance, 'unconfirmed')
})
it('should get balance for a single eCash address', async () => {
req.params.address =
'ecash:qr5c4hfy52zn87484cucvzle5pljz0gtr5vhtw9z09'
// Mock unit tests to prevent live network calls.
if (process.env.TEST === 'unit') {
electrumxRoute.isReady = true // Force flag.
sandbox
.stub(electrumxRoute.axios, 'get')
.resolves({ data: mockData.balance })
}
// Call the details API.
const result = await electrumxRoute.getBalance(req, res)
// console.log(`result: ${JSON.stringify(result, null, 2)}`)
assert.property(result, 'success')
assert.equal(result.success, true)
assert.property(result, 'balance')
assert.property(result.balance, 'confirmed')
assert.property(result.balance, 'unconfirmed')
})
})
describe('#balanceBulk', () => {
it('should throw 400 if addresses is empty', async () => {
const result = await electrumxRoute.balanceBulk(req, res)