From a84278f88cba14d1b06db13d3f6c01a271af7e6f Mon Sep 17 00:00:00 2001 From: Kirill Fedoseev Date: Thu, 14 Nov 2019 23:29:06 +0300 Subject: [PATCH] Fixed forced sign test. Improved binance testnet scripts --- demo/clean.sh | 3 ++ demo/start-binance-environment.sh | 52 ++++++++++++++++---------- src/binance-testnet/docker-compose.yml | 10 +++-- tests/test/addValidator.js | 8 +++- 4 files changed, 49 insertions(+), 24 deletions(-) diff --git a/demo/clean.sh b/demo/clean.sh index 1044917..3b819ba 100755 --- a/demo/clean.sh +++ b/demo/clean.sh @@ -12,6 +12,9 @@ echo "Cleaning $TARGET_NETWORK network" if [[ "$TARGET_NETWORK" == "development" ]]; then docker volume rm ganache_side_data > /dev/null 2>&1 || true docker volume rm ganache_home_data > /dev/null 2>&1 || true + docker volume rm binance_data > /dev/null 2>&1 || true + docker volume rm binance_marketdata > /dev/null 2>&1 || true + docker volume rm binance_marketdata > /dev/null 2>&1 || true fi for (( I = 1; I < 4; ++I )); do diff --git a/demo/start-binance-environment.sh b/demo/start-binance-environment.sh index 86ca927..783b179 100755 --- a/demo/start-binance-environment.sh +++ b/demo/start-binance-environment.sh @@ -8,12 +8,22 @@ tbnbcli() { echo 12345678 | docker exec -i binance-testnet_node_1 ./tbnbcli $@ --from node0 --node http://node:26657 --chain-id Binance-Dev --json } -echo "Removing old environment" -docker kill $(docker ps -a | grep binance-testnet_ | awk '{print $1}') > /dev/null 2>&1 || true -docker rm $(docker ps -a | grep binance-testnet_ | awk '{print $1}') > /dev/null 2>&1 || true -docker volume rm binance-testnet_marketdata > /dev/null 2>&1 || true +if [[ "$(docker volume ls | grep binance_data)" ]]; then + echo "Restarting binance test network" +else + echo "Creating new binance test network" -docker network create binance_net > /dev/null 2>&1 || true + echo "Removing old environment" + docker kill $(docker ps -a | grep binance-testnet_ | awk '{print $1}') > /dev/null 2>&1 || true + docker rm $(docker ps -a | grep binance-testnet_ | awk '{print $1}') > /dev/null 2>&1 || true + docker volume rm binance_marketdata > /dev/null 2>&1 || true + + docker network create binance_net > /dev/null 2>&1 || true + docker volume create binance_marketdata > /dev/null 2>&1 || true + docker volume create binance_data > /dev/null 2>&1 || true + + need_to_deploy=true +fi echo "Building required binaries" docker build -t testnet-binaries ../src/binance-testnet > /dev/null 2>&1 || true @@ -23,21 +33,25 @@ docker-compose -f ../src/binance-testnet/docker-compose.yml up --build -d sleep 2 -echo "Issuing test asset" -ISSUED_LOG=$(tbnbcli token issue --symbol DEV --total-supply 1000000000000 --token-name "DEV Token" | jq .Response.log) -TOKEN_SYMBOL=${ISSUED_LOG:(-8):7} -echo "Issued $TOKEN_SYMBOL" +if [[ -n "$need_to_deploy" ]]; then + echo "Issuing test asset" + ISSUED_LOG=$(tbnbcli token issue --symbol DEV --total-supply 1000000000000 --token-name "DEV Token" | jq .Response.log) + TOKEN_SYMBOL=${ISSUED_LOG:(-8):7} + echo "Issued $TOKEN_SYMBOL" -sed -i 's/FOREIGN_ASSET=.*$/FOREIGN_ASSET='"$TOKEN_SYMBOL"'/' ../src/test-services/binanceBalance/.env.development -sed -i 's/FOREIGN_ASSET=.*$/FOREIGN_ASSET='"$TOKEN_SYMBOL"'/' ../src/test-services/binanceSend/.env.development -sed -i 's/FOREIGN_ASSET=.*$/FOREIGN_ASSET='"$TOKEN_SYMBOL"'/' ../tests/.env -for file in ./validator*/.env.development; do - sed -i 's/FOREIGN_ASSET=.*$/FOREIGN_ASSET='"$TOKEN_SYMBOL"'/' "$file" -done + sed -i 's/FOREIGN_ASSET=.*$/FOREIGN_ASSET='"$TOKEN_SYMBOL"'/' ../src/test-services/binanceBalance/.env.development + sed -i 's/FOREIGN_ASSET=.*$/FOREIGN_ASSET='"$TOKEN_SYMBOL"'/' ../src/test-services/binanceSend/.env.development + sed -i 's/FOREIGN_ASSET=.*$/FOREIGN_ASSET='"$TOKEN_SYMBOL"'/' ../tests/.env + for file in ./validator*/.env.development; do + sed -i 's/FOREIGN_ASSET=.*$/FOREIGN_ASSET='"$TOKEN_SYMBOL"'/' "$file" + done -sleep 2 + sleep 2 -echo "Sending tokens to controlled address" -tbnbcli token multi-send --transfers '[{"to":"tbnb1z7u9f8mcuwxanns9xa6qgjtlka0d392epc0m9x","amount":"1000000000000:BNB,1000000000000:'"$TOKEN_SYMBOL"'"}]' + echo "Sending tokens to controlled address" + tbnbcli token multi-send --transfers '[{"to":"tbnb1z7u9f8mcuwxanns9xa6qgjtlka0d392epc0m9x","amount":"1000000000000:BNB,1000000000000:'"$TOKEN_SYMBOL"'"}]' -sleep 2 \ No newline at end of file + sleep 2 +else + echo "Tokens are already issued, run clean.sh first if you want to redeploy everything" +fi diff --git a/src/binance-testnet/docker-compose.yml b/src/binance-testnet/docker-compose.yml index f4917b5..ebe2cff 100644 --- a/src/binance-testnet/docker-compose.yml +++ b/src/binance-testnet/docker-compose.yml @@ -8,7 +8,8 @@ services: ports: - '26657:26657' volumes: - - 'marketdata:/root/.bnbchaind/marketdata' + - 'binance_marketdata:/root/.bnbchaind/marketdata' + - 'binance_data:/root/.bnbchaind/data' api-server: build: api-server image: bnc-api-server @@ -28,10 +29,13 @@ services: ports: - '8000:8000' volumes: - - 'marketdata:/http-api/marketdata' + - 'binance_marketdata:/http-api/marketdata' networks: binance_net: external: true binance_rpc_net: volumes: - marketdata: + binance_marketdata: + external: true + binance_data: + external: true diff --git a/tests/test/addValidator.js b/tests/test/addValidator.js index da0c1d0..f30bb53 100644 --- a/tests/test/addValidator.js +++ b/tests/test/addValidator.js @@ -5,6 +5,8 @@ const { getBepBalance, getBncFlags, getBncSequence } = require('./utils/bncContr const { controller1, controller3 } = require('./utils/proxyController') +const { HOME_BRIDGE_ADDRESS } = process.env + module.exports = (getUsers, newValidator) => { describe('add validator', function () { let info @@ -25,12 +27,14 @@ module.exports = (getUsers, newValidator) => { }) it('should start closing epoch process', async function () { - await user.exchangeErc(5) await controller1.voteStartVoting() await delay(5000) info = await controller1.getInfo() assert.strictEqual(info.bridgeStatus, 'ready', 'Should not change state after one vote') + await user.approveErc(HOME_BRIDGE_ADDRESS, 5) + await user.exchangeErc(5) + await controller3.voteStartVoting() info = await waitPromise(controller1.getInfo, (newInfo) => newInfo.bridgeStatus === 'closing_epoch') assert.strictEqual(info.epoch, initialInfo.epoch, 'Current epoch is not set correctly') @@ -157,7 +161,7 @@ module.exports = (getUsers, newValidator) => { const prevBalance = await getBepBalance(initialInfo.foreignBridgeAddress) const newBalance = await getBepBalance(info.foreignBridgeAddress) assert.strictEqual(prevBalance, 0, 'Did not transfer all funds') - assert.strictEqual(newBalance, initialInfo.foreignBalanceTokens, 'Funds are lost somewhere') + assert.strictEqual(newBalance, initialInfo.foreignBalanceTokens - 5, 'Funds are lost somewhere') }) }) }