From 77bd66c22ffd19944db561e6cb9cbcc756e0e668 Mon Sep 17 00:00:00 2001 From: junderw Date: Mon, 8 Apr 2019 15:24:19 +0900 Subject: [PATCH] Fix Bad Request errors from the client side --- test/integration/_regtest.js | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/test/integration/_regtest.js b/test/integration/_regtest.js index 650a79c..81821c1 100644 --- a/test/integration/_regtest.js +++ b/test/integration/_regtest.js @@ -35,10 +35,17 @@ function height () { }) } +function _faucetRequest (address, value) { + return dhttp({ + method: 'POST', + url: APIURL + '/r/faucet?address=' + address + '&value=' + value + '&key=' + APIPASS + }) +} + async function faucet (address, value) { let count = 0 let _unspents = [] - const sleep = ms => new Promise(r => setTimeout(r, ms)) + const sleep = ms => new Promise((resolve, reject) => setTimeout(resolve, ms)) do { if (count > 0) { if (count >= 5) throw new Error('Missing Inputs') @@ -46,10 +53,20 @@ async function faucet (address, value) { await sleep(200) } - const txId = await dhttp({ - method: 'POST', - url: APIURL + '/r/faucet?address=' + address + '&value=' + value + '&key=' + APIPASS - }) + const txId = await _faucetRequest(address, value) + .then( + v => v, // Pass success value as is + async err => { + // Bad Request error is fixed by making sure height is >= 432 + const currentHeight = await height() + if (err.message === 'Bad Request' && currentHeight < 432) { + await mine(432 - currentHeight) + return _faucetRequest(address, value) + } else { + throw err + } + } + ) await sleep(100)