diff --git a/.env.mirage.example b/.env.mirage.example new file mode 100644 index 0000000..ae5ccb1 --- /dev/null +++ b/.env.mirage.example @@ -0,0 +1,6 @@ +ETH_PRIVATE_KEY= +MAINNET_ENDPOINT=https://example.com +ENDPOINT=http://eth-proxy.skalenodes.com:8888/holesky +CHAIN_NAME= +MIRAGE_TAG=.0.1-develop.6 +TARGET= diff --git a/README.md b/README.md index 1c38d3d..0df7a92 100644 --- a/README.md +++ b/README.md @@ -102,13 +102,16 @@ Required environment variables: * `ETH_PRIVATE_KEY` (Ethereum private key without the `0x` prefix) * `ENDPOINT` (Ethereum RPC endpoint) * `MIRAGE_TAG` (tag for the Mirage-Manager version) +* `CHAIN_NAME` chain name what should be migrated +* `TARGET` Skale Manager address for the Ethereum Example: ```bash -ETH_PRIVATE_KEY= ENDPOINT=https://example.com MIRAGE_TAG=0.0.1-develop.6 bash deploy_mirage.sh +ETH_PRIVATE_KEY= ENDPOINT=https://example.com MIRAGE_TAG=0.0.1-develop.6 CHAIN_NAME= TARGET= bash deploy_mirage.sh ``` + ABI and address of the deployed contracts will be saved in `contracts_data/mirage.json` file. ### Deploy SKALE Allocator diff --git a/deploy_mirage.sh b/deploy_mirage.sh index 3de73f9..c23c741 100755 --- a/deploy_mirage.sh +++ b/deploy_mirage.sh @@ -6,14 +6,25 @@ set -e +if [ -f .env ]; then + source .env + export $(grep -v '^#' .env | xargs) + echo "Loaded environment variables from .env" +else + echo ".env not found, using variables from command line" +fi + : "${MIRAGE_TAG:?Need to set MIRAGE_TAG}" DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" -DEPLOYMENT_ENDPOINT=${ENDPOINT:-'http://127.0.0.1:8545'} +DEPLOYMENT_ENDPOINT=${MAINNET_ENDPOINT:-'http://127.0.0.1:8545'} GAS_PRICE=${GAS_PRICE:-10000000000} ETHERSCAN=${ETHERSCAN:-1234} NETWORK=${NETWORK:-custom} DOCKER_NETWORK=${DOCKER_NETWORK:-host} +CHAIN_NAME=${CHAIN_NAME:-"mirage-qa"} +TARGET=${TARGET:-"legacy"} +ENDPOINT=${ENDPOINT:-"http://127.0.0.1:8545"} source "$DIR/helper.sh" @@ -22,4 +33,4 @@ source "$DIR/helper.sh" PRIVATE_KEY=${ANVIL_PRIVATE_KEY:-$ETH_PRIVATE_KEY} : "${PRIVATE_KEY:?Need to set ETH_PRIVATE_KEY}" -deploy_mirage "$MIRAGE_TAG" "$DEPLOYMENT_ENDPOINT" "$PRIVATE_KEY" "$GAS_PRICE" "$NETWORK" "$ETHERSCAN" +deploy_mirage "$MIRAGE_TAG" "$DEPLOYMENT_ENDPOINT" "$PRIVATE_KEY" "$GAS_PRICE" "$NETWORK" "$ETHERSCAN" "$CHAIN_NAME" "$TARGET" "$ENDPOINT" diff --git a/helper.sh b/helper.sh index 16e1eca..b70bd9f 100644 --- a/helper.sh +++ b/helper.sh @@ -92,6 +92,8 @@ deploy_mirage () { : "${4?Pass GAS_PRICE to ${FUNCNAME[0]}}" : "${5?Pass NETWORK to ${FUNCNAME[0]}}" : "${6?Pass ETHERSCAN to ${FUNCNAME[0]}}" + : "${7?Pass CHAIN_NAME to ${FUNCNAME[0]}}" + : "${8?Pass TARGET to ${FUNCNAME[0]}}" echo Going to run $MIRAGE_IMAGE_NAME:$1 docker container... mkdir -p $DIR/contracts_data/openzeppelin @@ -99,16 +101,20 @@ deploy_mirage () { docker rm -f $MIRAGE_IMAGE_NAME || true docker pull skalenetwork/$MIRAGE_IMAGE_NAME:$1 + docker run \ --name $MIRAGE_IMAGE_NAME \ -v $DIR/contracts_data:/usr/src/manager/data \ --network $DOCKER_NETWORK \ - -e ENDPOINT=$2 \ + -e MAINNET_ENDPOINT=$2 \ -e PRIVATE_KEY=$3 \ -e GASPRICE=$4 \ -e ETHERSCAN=$6 \ + -e CHAIN_NAME=$7 \ + -e TARGET=$8 \ + -e ENDPOINT=$9 \ skalenetwork/$MIRAGE_IMAGE_NAME:$1 \ - /bin/bash -c "$cmd" + /bin/bash -c "$cmd" echo Copying $DIR/contracts_data/mirage-manager-${MIRAGE_TAG}-* to $DIR/contracts_data/mirage.json cp $DIR/contracts_data/mirage-manager-${MIRAGE_TAG}-* $DIR/contracts_data/mirage.json