Deployment to both, dev and staging environments. Automatic contract address update in demo. Refactor sh scripts. .env files splitted on particular enviornments
This commit is contained in:
parent
c3a495e1ea
commit
ed25ca9c68
|
@ -8,6 +8,7 @@ data/
|
|||
demo/validator*/db
|
||||
demo/validator*/keys
|
||||
demo/validator*/queue
|
||||
demo/validator*/.keys
|
||||
demo/ganache_home_db/
|
||||
demo/ganache_side_db/
|
||||
src/deploy/deploy-home/build/
|
||||
|
|
|
@ -3,15 +3,23 @@
|
|||
set -e
|
||||
|
||||
cd $(dirname "$0")
|
||||
cd ..
|
||||
|
||||
# either development or staging
|
||||
TARGET_NETWORK=${TARGET_NETWORK:=development}
|
||||
|
||||
start_blockchains() {
|
||||
DEPLOY_DIR="`pwd`/src/deploy"
|
||||
DEMO_DIR="`pwd`/demo"
|
||||
|
||||
SIDE_GANACHE_DB="$DEMO_DIR/ganache_side_db"
|
||||
HOME_GANACHE_DB="$DEMO_DIR/ganache_home_db"
|
||||
|
||||
start_dev_blockchain_networks() {
|
||||
echo "Starting side test blockchain"
|
||||
|
||||
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" \
|
||||
docker run -d --network blockchain_side --rm --name ganache_side -v "$SIDE_GANACHE_DB:/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
|
||||
|
||||
|
@ -19,91 +27,111 @@ start_blockchains() {
|
|||
|
||||
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" \
|
||||
docker run -d --network blockchain_home --rm --name ganache_home -v "$HOME_GANACHE_DB:/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
|
||||
|
||||
sleep 4
|
||||
}
|
||||
|
||||
deploy_all() {
|
||||
cd ../src/deploy
|
||||
deploy_token() {
|
||||
echo "Compiling and deploying erc20"
|
||||
|
||||
source .keys
|
||||
echo "Building deploy docker image"
|
||||
docker build -t deploy_test "$DEPLOY_DIR/deploy-test" > /dev/null 2>&1
|
||||
|
||||
TOKEN_ADDRESS=$(source ./deploy-home/.env; echo "$TOKEN_ADDRESS")
|
||||
|
||||
if [[ "$TARGET_NETWORK" == "development" ]] || [[ "$TOKEN_ADDRESS" == "0x" ]]; then
|
||||
echo "Compiling and deploying erc20"
|
||||
|
||||
cd ./deploy-test
|
||||
|
||||
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
|
||||
echo "Deploying"
|
||||
TOKEN_ADDRESS=$(docker run --network blockchain_home --rm --env-file "$DEPLOY_DIR/deploy-test/.env" -e "PRIVATE_KEY=$PRIVATE_KEY_KOVAN" \
|
||||
deploy_test \
|
||||
--network "$TARGET_NETWORK" 2>&1 \
|
||||
| grep "contract address" \
|
||||
| awk '{print $4}')
|
||||
}
|
||||
|
||||
deploy_bridge() {
|
||||
echo "Compiling and deploying home part"
|
||||
|
||||
cd ./deploy-home
|
||||
|
||||
echo "Building deploy docker image"
|
||||
docker build -t deploy_home . > /dev/null 2>&1
|
||||
docker build -t deploy_home "$DEPLOY_DIR/deploy-home" > /dev/null 2>&1
|
||||
|
||||
echo "Deploying"
|
||||
BRIDGE_ADDRESS=$(docker run --network blockchain_home --rm --env-file .env -e "PRIVATE_KEY=$PRIVATE_KEY_KOVAN" deploy_home --network "$TARGET_NETWORK" 2>&1 \
|
||||
BRIDGE_ADDRESS=$(docker run --network blockchain_home --rm --env-file "$DEPLOY_DIR/deploy-home/.env" -e "PRIVATE_KEY=$PRIVATE_KEY_KOVAN" \
|
||||
deploy_home \
|
||||
--network "$TARGET_NETWORK" 2>&1 \
|
||||
| grep "contract address" \
|
||||
| awk '{print $4}')
|
||||
}
|
||||
|
||||
|
||||
|
||||
deploy_db() {
|
||||
echo "Compiling and deploying side part"
|
||||
|
||||
cd ../deploy-side
|
||||
|
||||
echo "Building deploy docker image"
|
||||
docker build -t deploy_side . > /dev/null 2>&1
|
||||
docker build -t deploy_side "$DEPLOY_DIR/deploy-side" > /dev/null 2>&1
|
||||
|
||||
echo "Deploying"
|
||||
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 \
|
||||
SHARED_DB_ADDRESS=$(docker run --network blockchain_side --rm --env-file "$DEPLOY_DIR/deploy-side/.env" -e "PRIVATE_KEY=$PRIVATE_KEY_SOKOL" \
|
||||
deploy_side \
|
||||
--network "$TARGET_NETWORK" 2>&1 \
|
||||
| grep "contract address" \
|
||||
| awk '{print $4}')
|
||||
}
|
||||
|
||||
deploy_all() {
|
||||
cd "$DEPLOY_DIR"
|
||||
|
||||
source "$DEPLOY_DIR/.keys"
|
||||
|
||||
TOKEN_ADDRESS=$(source "$DEPLOY_DIR/deploy-home/.env"; echo "$TOKEN_ADDRESS")
|
||||
|
||||
if [[ "$TARGET_NETWORK" == "development" ]] || [[ "$TOKEN_ADDRESS" == "0x" ]]; then
|
||||
deploy_token
|
||||
sed -i 's/TOKEN_ADDRESS=0x$/TOKEN_ADDRESS='"$TOKEN_ADDRESS"'/' "$DEPLOY_DIR/deploy-home/.env"
|
||||
fi
|
||||
|
||||
deploy_bridge
|
||||
deploy_db
|
||||
|
||||
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"
|
||||
|
||||
echo "Updating deployed contract addresses in demo validators .env.$TARGET_NETWORK configs"
|
||||
for file in "$DEMO_DIR"/validator*/.env."$TARGET_NETWORK"; do
|
||||
sed -i 's/TOKEN_ADDRESS=.*$/TOKEN_ADDRESS='"$TOKEN_ADDRESS"'/' "$file"
|
||||
sed -i 's/BRIDGE_ADDRESS=.*$/BRIDGE_ADDRESS='"$BRIDGE_ADDRESS"'/' "$file"
|
||||
sed -i 's/SHARED_DB_ADDRESS=.*$/SHARED_DB_ADDRESS='"$SHARED_DB_ADDRESS"'/' "$file"
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
if [[ "$TARGET_NETWORK" == "development" ]]; then
|
||||
if [[ -z "$(ls -A ganache_side_db)" ]] || [[ -z "$(ls -A ganache_home_db)" ]]; then
|
||||
if [[ ! -d "$SIDE_GANACHE_DB" ]]; then
|
||||
mkdir "$SIDE_GANACHE_DB"
|
||||
fi
|
||||
|
||||
if [[ ! -d "$HOME_GANACHE_DB" ]]; then
|
||||
mkdir "$HOME_GANACHE_DB"
|
||||
fi
|
||||
|
||||
|
||||
if [[ -z "$(ls -A "$SIDE_GANACHE_DB")" ]] || [[ -z "$(ls -A "$HOME_GANACHE_DB")" ]]; then
|
||||
echo "Starting dev blockchain networks and deploying contracts"
|
||||
need_to_deploy=true
|
||||
else
|
||||
echo "Restarting dev blockchain networks"
|
||||
fi
|
||||
|
||||
side_db_mount_point="$(pwd)/ganache_side_db"
|
||||
if [[ ! -d "$side_db_mount_point" ]]; then
|
||||
mkdir "$side_db_mount_point"
|
||||
fi
|
||||
|
||||
home_db_mount_point="$(pwd)/ganache_home_db"
|
||||
if [[ ! -d "$home_db_mount_point" ]]; then
|
||||
mkdir "$home_db_mount_point"
|
||||
fi
|
||||
|
||||
start_blockchains
|
||||
start_dev_blockchain_networks
|
||||
|
||||
if [[ -n "$need_to_deploy" ]]; then
|
||||
deploy_all
|
||||
else
|
||||
echo "Contracts are already deployed, run clean.sh first if you want to redeploy everything"
|
||||
fi
|
||||
else
|
||||
echo "Deploying to staging blockchain environment"
|
||||
|
||||
source ../src/deploy/.keys
|
||||
echo "Deploying to the staging blockchain environment"
|
||||
|
||||
deploy_all
|
||||
fi
|
||||
|
|
|
@ -11,4 +11,7 @@ echo "Starting $NAME"
|
|||
|
||||
mkdir -p "$NAME"
|
||||
cd "$NAME"
|
||||
if [[ -e .keys ]]; then
|
||||
source .keys
|
||||
fi
|
||||
docker-compose -p "$NAME" -f ../../src/oracle/docker-compose-test.yml up ${DCU_FLAGS}
|
||||
|
|
|
@ -1,17 +1,8 @@
|
|||
HOME_RPC_URL=http://ganache_home:8545
|
||||
HOME_CHAIN_ID=44
|
||||
HOME_BRIDGE_ADDRESS=0x44c158FE850821ae69DaF37AADF5c539e9d0025B
|
||||
HOME_TOKEN_ADDRESS=0xd5fE0D28e058D375b0b038fFbB446Da37E85fFdc
|
||||
|
||||
SIDE_RPC_URL=http://ganache_side:8545
|
||||
SIDE_CHAIN_ID=33
|
||||
SIDE_SHARED_DB_ADDRESS=0xd5fE0D28e058D375b0b038fFbB446Da37E85fFdc
|
||||
|
||||
FOREIGN_URL=https://testnet-dex.binance.org/
|
||||
FOREIGN_CHAIN_ID=Binance-Chain-Nile
|
||||
FOREIGN_ASSET=KFT-94F
|
||||
|
||||
VALIDATOR_PRIVATE_KEY=2be3f252e16541bf1bb2d4a517d2bf173e6d09f2d765d32c64dc50515aec63ea
|
||||
#VALIDATOR_PRIVATE_KEY is taken from .keys
|
||||
|
||||
VOTES_PROXY_PORT=5001
|
||||
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
HOME_RPC_URL=http://ganache_home:8545
|
||||
HOME_CHAIN_ID=44
|
||||
HOME_BRIDGE_ADDRESS=0x44c158FE850821ae69DaF37AADF5c539e9d0025B
|
||||
HOME_TOKEN_ADDRESS=0xd5fE0D28e058D375b0b038fFbB446Da37E85fFdc
|
||||
|
||||
SIDE_RPC_URL=http://ganache_side:8545
|
||||
SIDE_CHAIN_ID=33
|
||||
SIDE_SHARED_DB_ADDRESS=0xd5fE0D28e058D375b0b038fFbB446Da37E85fFdc
|
|
@ -0,0 +1,8 @@
|
|||
HOME_RPC_URL=https://kovan.infura.io/v3/5d7bd94c50ed43fab1cb8e74f58678b0
|
||||
HOME_CHAIN_ID=42
|
||||
HOME_BRIDGE_ADDRESS=0x646D46A206c5bb38E925C9Ef148383f317F29466
|
||||
HOME_TOKEN_ADDRESS=0xFe175c723ca2CB997D0EC000309e2da69B173381
|
||||
|
||||
SIDE_RPC_URL=https://sokol.poa.network
|
||||
SIDE_CHAIN_ID=77
|
||||
SIDE_SHARED_DB_ADDRESS=0x6FA32e5fC249476E46D695722eAd9E82F4B316f6
|
|
@ -1,17 +1,8 @@
|
|||
HOME_RPC_URL=http://ganache_home:8545
|
||||
HOME_CHAIN_ID=44
|
||||
HOME_BRIDGE_ADDRESS=0x44c158FE850821ae69DaF37AADF5c539e9d0025B
|
||||
HOME_TOKEN_ADDRESS=0xd5fE0D28e058D375b0b038fFbB446Da37E85fFdc
|
||||
|
||||
SIDE_RPC_URL=http://ganache_side:8545
|
||||
SIDE_CHAIN_ID=33
|
||||
SIDE_SHARED_DB_ADDRESS=0xd5fE0D28e058D375b0b038fFbB446Da37E85fFdc
|
||||
|
||||
FOREIGN_URL=https://testnet-dex.binance.org/
|
||||
FOREIGN_CHAIN_ID=Binance-Chain-Nile
|
||||
FOREIGN_ASSET=KFT-94F
|
||||
|
||||
VALIDATOR_PRIVATE_KEY=e59d58c77b791f98f10187117374ae9c589d48a62720ec6a5e142b0cc134f685
|
||||
#VALIDATOR_PRIVATE_KEY is taken from .keys
|
||||
|
||||
VOTES_PROXY_PORT=5002
|
||||
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
HOME_RPC_URL=http://ganache_home:8545
|
||||
HOME_CHAIN_ID=44
|
||||
HOME_BRIDGE_ADDRESS=0x44c158FE850821ae69DaF37AADF5c539e9d0025B
|
||||
HOME_TOKEN_ADDRESS=0xd5fE0D28e058D375b0b038fFbB446Da37E85fFdc
|
||||
|
||||
SIDE_RPC_URL=http://ganache_side:8545
|
||||
SIDE_CHAIN_ID=33
|
||||
SIDE_SHARED_DB_ADDRESS=0xd5fE0D28e058D375b0b038fFbB446Da37E85fFdc
|
|
@ -0,0 +1,8 @@
|
|||
HOME_RPC_URL=https://kovan.infura.io/v3/5d7bd94c50ed43fab1cb8e74f58678b0
|
||||
HOME_CHAIN_ID=42
|
||||
HOME_BRIDGE_ADDRESS=0x646D46A206c5bb38E925C9Ef148383f317F29466
|
||||
HOME_TOKEN_ADDRESS=0xFe175c723ca2CB997D0EC000309e2da69B173381
|
||||
|
||||
SIDE_RPC_URL=https://sokol.poa.network
|
||||
SIDE_CHAIN_ID=77
|
||||
SIDE_SHARED_DB_ADDRESS=0x6FA32e5fC249476E46D695722eAd9E82F4B316f6
|
|
@ -1,17 +1,8 @@
|
|||
HOME_RPC_URL=http://ganache_home:8545
|
||||
HOME_CHAIN_ID=44
|
||||
HOME_BRIDGE_ADDRESS=0x44c158FE850821ae69DaF37AADF5c539e9d0025B
|
||||
HOME_TOKEN_ADDRESS=0xd5fE0D28e058D375b0b038fFbB446Da37E85fFdc
|
||||
|
||||
SIDE_RPC_URL=http://ganache_side:8545
|
||||
SIDE_CHAIN_ID=33
|
||||
SIDE_SHARED_DB_ADDRESS=0xd5fE0D28e058D375b0b038fFbB446Da37E85fFdc
|
||||
|
||||
FOREIGN_URL=https://testnet-dex.binance.org/
|
||||
FOREIGN_CHAIN_ID=Binance-Chain-Nile
|
||||
FOREIGN_ASSET=KFT-94F
|
||||
|
||||
VALIDATOR_PRIVATE_KEY=afaa4d4d6e54d25b0bf0361e3fd6cef562f6311bf6200de2dd0aa4cab63ae3b5
|
||||
#VALIDATOR_PRIVATE_KEY is taken from .keys
|
||||
|
||||
VOTES_PROXY_PORT=5003
|
||||
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
HOME_RPC_URL=http://ganache_home:8545
|
||||
HOME_CHAIN_ID=44
|
||||
HOME_BRIDGE_ADDRESS=0x44c158FE850821ae69DaF37AADF5c539e9d0025B
|
||||
HOME_TOKEN_ADDRESS=0xd5fE0D28e058D375b0b038fFbB446Da37E85fFdc
|
||||
|
||||
SIDE_RPC_URL=http://ganache_side:8545
|
||||
SIDE_CHAIN_ID=33
|
||||
SIDE_SHARED_DB_ADDRESS=0xd5fE0D28e058D375b0b038fFbB446Da37E85fFdc
|
|
@ -0,0 +1,8 @@
|
|||
HOME_RPC_URL=https://kovan.infura.io/v3/5d7bd94c50ed43fab1cb8e74f58678b0
|
||||
HOME_CHAIN_ID=42
|
||||
HOME_BRIDGE_ADDRESS=0x646D46A206c5bb38E925C9Ef148383f317F29466
|
||||
HOME_TOKEN_ADDRESS=0xFe175c723ca2CB997D0EC000309e2da69B173381
|
||||
|
||||
SIDE_RPC_URL=https://sokol.poa.network
|
||||
SIDE_CHAIN_ID=77
|
||||
SIDE_SHARED_DB_ADDRESS=0x6FA32e5fC249476E46D695722eAd9E82F4B316f6
|
|
@ -4,8 +4,9 @@ RPC_URL_DEV=http://ganache_home:8545
|
|||
#PRIVATE_KEY is taken from PRIVATE_KEY_KOVAN in src/deploy/.keys
|
||||
PRIVATE_KEY_DEV=e2aeb24eaa63102d0c0821717c3b6384abdabd7af2ad4ec8e650dce300798b27
|
||||
|
||||
#Set to empty address '0x' for redeployment of token contract in staging environment
|
||||
TOKEN_ADDRESS=0xBAD4DD5dA696b1B59932a33c33737ea63438536F
|
||||
#Set to '0x' for redeployment of token contract in staging environment
|
||||
TOKEN_ADDRESS=0xFe175c723ca2CB997D0EC000309e2da69B173381
|
||||
|
||||
TOKEN_ADDRESS_DEV=0xd5fE0D28e058D375b0b038fFbB446Da37E85fFdc
|
||||
|
||||
VALIDATOR_ADDRESS_1=0x99Eb3D86663c6Db090eFFdBC20510Ca9f836DCE3
|
||||
|
|
Loading…
Reference in New Issue