Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .env.mirage.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
ETH_PRIVATE_KEY=<your_private_key>
MAINNET_ENDPOINT=https://example.com
ENDPOINT=http://eth-proxy.skalenodes.com:8888/holesky
CHAIN_NAME=<example-mirage>
MIRAGE_TAG=.0.1-develop.6
TARGET=<skale-manager-address>
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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=<your_private_key> ENDPOINT=https://example.com MIRAGE_TAG=0.0.1-develop.6 bash deploy_mirage.sh
ETH_PRIVATE_KEY=<your_private_key> ENDPOINT=https://example.com MIRAGE_TAG=0.0.1-develop.6 CHAIN_NAME=<schain-name> TARGET=<skale-manager address> bash deploy_mirage.sh
```


ABI and address of the deployed contracts will be saved in `contracts_data/mirage.json` file.

### Deploy SKALE Allocator
Expand Down
15 changes: 13 additions & 2 deletions deploy_mirage.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"

Expand All @@ -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"
10 changes: 8 additions & 2 deletions helper.sh
Original file line number Diff line number Diff line change
Expand Up @@ -92,23 +92,29 @@ 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
cmd="yarn hardhat run migrations/deploy.ts --network custom"

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
Expand Down