Fixed extra votes processing. Added delay before getting binance balance.

This commit is contained in:
Kirill Fedoseev 2019-10-30 11:51:22 +03:00
parent 5359ac8b3c
commit e44b3915d1
3 changed files with 12 additions and 8 deletions

View File

@ -222,7 +222,8 @@ function parseError (message) {
async function sendVote (query, req, res, waitFlag = false) { async function sendVote (query, req, res, waitFlag = false) {
try { try {
let { txHash, gasLimit } = await homeSendQuery(query) const sentQuery = await homeSendQuery(query)
let { txHash, gasLimit } = sentQuery
if (txHash) { if (txHash) {
while (waitFlag) { while (waitFlag) {
const { status, gasUsed } = await waitForReceipt(HOME_RPC_URL, txHash) const { status, gasUsed } = await waitForReceipt(HOME_RPC_URL, txHash)
@ -232,14 +233,16 @@ async function sendVote (query, req, res, waitFlag = false) {
} }
if (gasLimit === gasUsed) { if (gasLimit === gasUsed) {
logger.info('Sending vote failed due to out of gas revert, retrying with more gas') logger.info('Sending vote failed due to out of gas revert, retrying with more gas')
const nexTx = await homeSendQuery(query) const nextTx = await homeSendQuery(query)
txHash = nexTx.txHash txHash = nextTx.txHash
gasLimit = nexTx.gasLimit gasLimit = nextTx.gasLimit
} else { } else {
logger.warn(`Vote tx was reverted, txHash ${txHash}`) logger.warn(`Vote tx was reverted, txHash ${txHash}`)
break break
} }
} }
}
if (sentQuery) {
res.send('Voted\n') res.send('Voted\n')
logger.info('Voted successfully') logger.info('Voted successfully')
} else { } else {
@ -300,8 +303,7 @@ function decodeStatus (status) {
} }
} }
function boundX (x) {
function boundX(x) {
try { try {
return x.toNumber() return x.toNumber()
} catch (e) { } catch (e) {

View File

@ -50,7 +50,7 @@ async function createSender (url, privateKey) {
if (estimate.error) { if (estimate.error) {
logger.debug('Gas estimate failed %o', estimate.error) logger.debug('Gas estimate failed %o', estimate.error)
return false return true
} }
const gasLimit = BN.min(new BN(estimate.result, 16).multipliedBy(GAS_LIMIT_FACTOR), MAX_GAS_LIMIT) const gasLimit = BN.min(new BN(estimate.result, 16).multipliedBy(GAS_LIMIT_FACTOR), MAX_GAS_LIMIT)
tx.gasLimit = `0x${new BN(gasLimit).toString(16)}` tx.gasLimit = `0x${new BN(gasLimit).toString(16)}`

View File

@ -47,7 +47,8 @@ describe('bridge tests', function () {
testBncToEth(() => users, () => info.foreignBridgeAddress) testBncToEth(() => users, () => info.foreignBridgeAddress)
describe('remove validator', function () { describe('remove validator', function () {
before(function () { before(async function () {
info = await controller1.getInfo()
prevForeignBridgeBalance = info.foreignBalanceTokens prevForeignBridgeBalance = info.foreignBalanceTokens
prevForeignBridgeAddress = info.foreignBridgeAddress prevForeignBridgeAddress = info.foreignBridgeAddress
}) })
@ -126,6 +127,7 @@ describe('bridge tests', function () {
assert.deepStrictEqual(info.validators, [ validatorsConfig[0], validatorsConfig[2] ], 'Incorrect set of validators in epoch 2') assert.deepStrictEqual(info.validators, [ validatorsConfig[0], validatorsConfig[2] ], 'Incorrect set of validators in epoch 2')
assert.strictEqual(info.nextEpoch, 2, 'Incorrect next epoch') assert.strictEqual(info.nextEpoch, 2, 'Incorrect next epoch')
assert.strictEqual(info.bridgeStatus, 'ready', 'Incorrect bridge state in new epoch') assert.strictEqual(info.bridgeStatus, 'ready', 'Incorrect bridge state in new epoch')
await delay(5000)
const prevBalance = await getBalance(prevForeignBridgeAddress) const prevBalance = await getBalance(prevForeignBridgeAddress)
const newBalance = await getBalance(info.foreignBridgeAddress) const newBalance = await getBalance(info.foreignBridgeAddress)
assert.strictEqual(prevBalance, 0, "Did not transfer all funds") assert.strictEqual(prevBalance, 0, "Did not transfer all funds")