2019-07-04 02:32:01 -07:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
cd $(dirname "$0")
|
|
|
|
|
2019-09-01 00:50:26 -07:00
|
|
|
TARGET_NETWORK=${TARGET_NETWORK:=development}
|
|
|
|
|
2019-08-31 00:56:50 -07:00
|
|
|
start_blockchains() {
|
|
|
|
echo "Starting side test blockchain"
|
2019-07-04 02:32:01 -07:00
|
|
|
|
2019-08-31 00:56:50 -07:00
|
|
|
docker kill ganache_side > /dev/null 2>&1 || true
|
|
|
|
docker network create blockchain_side > /dev/null 2>&1 || true
|
|
|
|
docker run -d --network blockchain_side --rm --name ganache_side -v "$side_db_mount_point:/app/db" \
|
|
|
|
trufflesuite/ganache-cli:latest \
|
|
|
|
-m "shrug dwarf easily blade trigger lucky reopen cage lake scatter desk boat" -i 33 -q --db /app/db
|
2019-07-07 12:58:35 -07:00
|
|
|
|
2019-08-31 00:56:50 -07:00
|
|
|
echo "Starting home test blockchain"
|
2019-08-22 12:00:32 -07:00
|
|
|
|
2019-08-31 00:56:50 -07:00
|
|
|
docker kill ganache_home > /dev/null 2>&1 || true
|
|
|
|
docker network create blockchain_home > /dev/null 2>&1 || true
|
|
|
|
docker run -d --network blockchain_home --rm --name ganache_home -v "$home_db_mount_point:/app/db" \
|
|
|
|
trufflesuite/ganache-cli:latest \
|
|
|
|
-m "shrug dwarf easily blade trigger lucky reopen cage lake scatter desk boat" -i 44 -q --db /app/db
|
2019-07-07 12:58:35 -07:00
|
|
|
|
2019-08-31 00:56:50 -07:00
|
|
|
sleep 4
|
|
|
|
}
|
2019-07-07 12:58:35 -07:00
|
|
|
|
2019-08-31 00:56:50 -07:00
|
|
|
deploy_all() {
|
2019-09-01 00:50:26 -07:00
|
|
|
cd ../src/deploy
|
2019-07-07 12:58:35 -07:00
|
|
|
|
2019-09-01 00:50:26 -07:00
|
|
|
source .keys
|
2019-07-04 02:32:01 -07:00
|
|
|
|
2019-09-01 00:50:26 -07:00
|
|
|
TOKEN_ADDRESS=$(source ./deploy-home/.env; echo "$TOKEN_ADDRESS")
|
|
|
|
|
|
|
|
if [[ "$TARGET_NETWORK" == "development" ]] || [[ "$TOKEN_ADDRESS" == "0x" ]]; then
|
|
|
|
echo "Compiling and deploying erc20"
|
2019-07-04 02:32:01 -07:00
|
|
|
|
2019-09-01 00:50:26 -07:00
|
|
|
cd ./deploy-test
|
2019-07-04 02:32:01 -07:00
|
|
|
|
2019-09-01 00:50:26 -07:00
|
|
|
echo "Building deploy docker image"
|
|
|
|
docker build -t deploy_test . > /dev/null 2>&1
|
|
|
|
echo "Deploying"
|
|
|
|
TOKEN_ADDRESS=$(docker run --network blockchain_home --rm --env-file .env -e "PRIVATE_KEY=$PRIVATE_KEY_KOVAN" deploy_test --network "$TARGET_NETWORK" 2>&1 \
|
|
|
|
| grep "contract address" \
|
|
|
|
| awk '{print $4}')
|
|
|
|
sed -i 's/TOKEN_ADDRESS=0x$/TOKEN_ADDRESS='"$TOKEN_ADDRESS"'/' ../deploy-home/.env
|
|
|
|
cd ..
|
|
|
|
fi
|
2019-07-04 02:32:01 -07:00
|
|
|
|
2019-08-31 00:56:50 -07:00
|
|
|
echo "Compiling and deploying home part"
|
2019-07-04 02:32:01 -07:00
|
|
|
|
2019-09-01 00:50:26 -07:00
|
|
|
cd ./deploy-home
|
2019-07-04 02:32:01 -07:00
|
|
|
|
2019-08-31 00:56:50 -07:00
|
|
|
echo "Building deploy docker image"
|
|
|
|
docker build -t deploy_home . > /dev/null 2>&1
|
|
|
|
echo "Deploying"
|
2019-09-01 00:50:26 -07:00
|
|
|
BRIDGE_ADDRESS=$(docker run --network blockchain_home --rm --env-file .env -e "PRIVATE_KEY=$PRIVATE_KEY_KOVAN" deploy_home --network "$TARGET_NETWORK" 2>&1 \
|
|
|
|
| grep "contract address" \
|
|
|
|
| awk '{print $4}')
|
2019-07-04 02:32:01 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
2019-08-31 00:56:50 -07:00
|
|
|
echo "Compiling and deploying side part"
|
2019-07-04 02:32:01 -07:00
|
|
|
|
2019-08-31 00:56:50 -07:00
|
|
|
cd ../deploy-side
|
2019-07-07 12:58:35 -07:00
|
|
|
|
2019-08-31 00:56:50 -07:00
|
|
|
echo "Building deploy docker image"
|
|
|
|
docker build -t deploy_side . > /dev/null 2>&1
|
|
|
|
echo "Deploying"
|
2019-09-01 00:50:26 -07:00
|
|
|
SHARED_DB_ADDRESS=$(docker run --network blockchain_side --rm --env-file .env -e "PRIVATE_KEY=$PRIVATE_KEY_SOKOL" deploy_side --network "$TARGET_NETWORK" 2>&1 \
|
|
|
|
| grep "contract address" \
|
|
|
|
| awk '{print $4}')
|
|
|
|
|
|
|
|
echo "Token contract address in $TARGET_NETWORK network is $TOKEN_ADDRESS"
|
|
|
|
echo "Bridge contract address in $TARGET_NETWORK network is $BRIDGE_ADDRESS"
|
|
|
|
echo "Database contract address in $TARGET_NETWORK side network is $SHARED_DB_ADDRESS"
|
2019-08-31 00:56:50 -07:00
|
|
|
}
|
2019-07-07 12:58:35 -07:00
|
|
|
|
2019-09-01 00:50:26 -07:00
|
|
|
if [[ "$TARGET_NETWORK" == "development" ]]; then
|
|
|
|
if [[ -z "$(ls -A ganache_side_db)" ]] || [[ -z "$(ls -A ganache_home_db)" ]]; then
|
|
|
|
echo "Starting dev blockchain networks and deploying contracts"
|
|
|
|
need_to_deploy=true
|
|
|
|
else
|
|
|
|
echo "Restarting dev blockchain networks"
|
|
|
|
fi
|
2019-07-07 12:58:35 -07:00
|
|
|
|
2019-09-01 00:50:26 -07:00
|
|
|
side_db_mount_point="$(pwd)/ganache_side_db"
|
|
|
|
if [[ ! -d "$side_db_mount_point" ]]; then
|
|
|
|
mkdir "$side_db_mount_point"
|
|
|
|
fi
|
2019-07-17 00:31:38 -07:00
|
|
|
|
2019-09-01 00:50:26 -07:00
|
|
|
home_db_mount_point="$(pwd)/ganache_home_db"
|
|
|
|
if [[ ! -d "$home_db_mount_point" ]]; then
|
|
|
|
mkdir "$home_db_mount_point"
|
|
|
|
fi
|
2019-07-17 00:31:38 -07:00
|
|
|
|
2019-08-31 00:56:50 -07:00
|
|
|
start_blockchains
|
2019-09-01 00:50:26 -07:00
|
|
|
|
|
|
|
if [[ -n "$need_to_deploy" ]]; then
|
|
|
|
deploy_all
|
|
|
|
fi
|
2019-08-31 00:56:50 -07:00
|
|
|
else
|
2019-09-01 00:50:26 -07:00
|
|
|
echo "Deploying to staging blockchain environment"
|
|
|
|
|
|
|
|
source ../src/deploy/.keys
|
|
|
|
|
|
|
|
deploy_all
|
2019-08-31 00:56:50 -07:00
|
|
|
fi
|
2019-07-07 12:58:35 -07:00
|
|
|
|
|
|
|
echo "Done"
|