From f7a83ec504f77117ea53f18a3c2bbe26b8be76d7 Mon Sep 17 00:00:00 2001 From: todd <81545601+todd-woko@users.noreply.github.com> Date: Mon, 19 Feb 2024 09:43:55 +0800 Subject: [PATCH] test: setup env test script (#114) Co-authored-by: zakir <80246097+zakir-code@users.noreply.github.com> --- .gitignore | 2 ++ tests/data/bridge_contracts.json | 4 ---- tests/scripts/bridge.sh | 17 ++++++++++------ tests/scripts/ethereum.sh | 3 ++- tests/scripts/fxcore.sh | 3 ++- tests/scripts/run.sh | 34 +++++++++++++++++++++----------- tests/scripts/setup-env.sh | 11 +++++++++++ 7 files changed, 50 insertions(+), 24 deletions(-) diff --git a/.gitignore b/.gitignore index 1ae9f5ad6..a96913d1c 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,5 @@ artifacts dist out typechain-types + +tests/scripts/.env \ No newline at end of file diff --git a/tests/data/bridge_contracts.json b/tests/data/bridge_contracts.json index a2d0dc686..a0a1cece1 100644 --- a/tests/data/bridge_contracts.json +++ b/tests/data/bridge_contracts.json @@ -2,9 +2,5 @@ { "chain_name": "eth", "contract_class_name": "FxBridgeLogicETH" - }, - { - "chain_name": "bsc", - "contract_class_name": "FxBridgeLogicBSC" } ] \ No newline at end of file diff --git a/tests/scripts/bridge.sh b/tests/scripts/bridge.sh index a6222f34f..82f21f1bb 100755 --- a/tests/scripts/bridge.sh +++ b/tests/scripts/bridge.sh @@ -7,14 +7,17 @@ set -eo pipefail readonly bridger_start_index=100 readonly bridger_oracle_number=3 -readonly bridge_image="functionx/fx-bridge-golang:3.1.0" readonly bridge_tokens_file="${PROJECT_DIR}/tests/data/bridge_tokens.json" export NODE_HOME="$OUT_DIR/.fxcore" export LOCAL_PORT=${LOCAL_PORT:-"8545"} +export BRIDGE_IMAGE=${BRIDGE_IMAGE:-"functionx/fx-bridge-robot:latest"} export BRIDGE_CONTRACTS_OUT_DIR=${BRIDGE_CONTRACTS_OUT_DIR:-"${OUT_DIR}/bridge_contracts_out.json"} export BRIDGE_TOKENS_OUT_DIR=${BRIDGE_TOKENS_OUT_DIR:-"${OUT_DIR}/bridge_tokens_out.json"} +export RBIDGER_OUT_DIR=${RBIDGER_OUT_DIR:-"${OUT_DIR}/bridger_key/"} + +mkdir -p "$RBIDGER_OUT_DIR" function proposal() { "${PROJECT_DIR}/tests/scripts/proposal.sh" "$@" @@ -30,11 +33,11 @@ function create_oracles() { for ((i = 0; i < "$bridger_oracle_number"; i++)); do add_key "$chain-oracle-$i" "$index" add_key "$chain-bridger-$i" "$((index + 1))" - oracle_address=$(show_address "$chain-oracle-$i" -a) bridger_address=$(show_address "$chain-bridger-$i" -a) external_address=$(show_address "$chain-bridger-$i" -e) - + echo "12345678" | export_key "$chain-bridger-$i" "$RBIDGER_OUT_DIR/fx-$chain-bridger-$i.key" --ascii-armor + echo "12345678" | export_key "$chain-bridger-$i" "$RBIDGER_OUT_DIR/eth-$chain-bridger-$i.key" cat >"$oracle_file.new" <>"$OUT_DIR/bridge-docker-compose.yml" </dev/null 2>&1 - npx hardhat "$@" + npx hardhat "$@" --network localhost ) } @@ -55,6 +55,7 @@ function init_bridge_contract() { } ## ARGS: +# shellcheck disable=SC2317 # Don't warn about unreachable commands in this function function add_bridge_token() { local contract=${1} token=${2} is_original=${3} target_ibc=${4} shift 4 diff --git a/tests/scripts/fxcore.sh b/tests/scripts/fxcore.sh index b5af1de99..ceca34538 100755 --- a/tests/scripts/fxcore.sh +++ b/tests/scripts/fxcore.sh @@ -8,7 +8,7 @@ set -eo pipefail export CHAIN_NAME="fxcore" export NODE_HOME="$OUT_DIR/.$CHAIN_NAME" -export DOCKER_IMAGE=${DOCKER_IMAGE:-"ghcr.io/functionx/fx-core:4.1.0-rc0"} +export DOCKER_IMAGE=${DOCKER_IMAGE:-"ghcr.io/functionx/fx-core:latest"} export DAEMON="docker run --rm -i --network $DOCKER_NETWORK -v $NODE_HOME:$NODE_HOME $DOCKER_IMAGE" export NODE_RPC="http://$CHAIN_NAME:26657" @@ -35,6 +35,7 @@ function init() { "bech32_prefix": "$BECH32_PREFIX" } EOF + sleep 2 } function start() { diff --git a/tests/scripts/run.sh b/tests/scripts/run.sh index ad77c5103..358aaa850 100755 --- a/tests/scripts/run.sh +++ b/tests/scripts/run.sh @@ -24,18 +24,28 @@ function run() { ) ( - export IBC_CHANNEL="channel-0" - PURSE_ADDRESS="$("${script_dir}/ethereum.sh" get_token_address bsc PURSE)" - export PURSE_ADDRESS - PUNDIX_ADDRESS="$("${script_dir}/ethereum.sh" get_token_address eth PUNDIX)" - export PUNDIX_ADDRESS - "${script_dir}/pundix.sh" init - "${script_dir}/pundix.sh" start - - "${script_dir}/ibcrelayer.sh" transfer - "${script_dir}/ibcrelayer.sh" init - "${script_dir}/ibcrelayer.sh" create_channel - "${script_dir}/ibcrelayer.sh" start + # shellcheck source=/dev/null + . "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/setup-env.sh" + if [[ "$ENABLE_IBC" == "true" ]]; then + export IBC_CHANNEL="channel-0" + PURSE_ADDRESS="$("${script_dir}/ethereum.sh" get_token_address bsc PURSE)" + export PURSE_ADDRESS + PUNDIX_ADDRESS="$("${script_dir}/ethereum.sh" get_token_address eth PUNDIX)" + export PUNDIX_ADDRESS + "${script_dir}/pundix.sh" init + "${script_dir}/pundix.sh" start + + "${script_dir}/ibcrelayer.sh" transfer + "${script_dir}/ibcrelayer.sh" init + "${script_dir}/ibcrelayer.sh" create_channel + "${script_dir}/ibcrelayer.sh" start + fi + ) + + ( + "${script_dir}/bridge.sh" create_oracles eth + "${script_dir}/bridge.sh" update_crosschain_oracles eth + "${script_dir}/bridge.sh" create_oracle_bridger eth ) } diff --git a/tests/scripts/setup-env.sh b/tests/scripts/setup-env.sh index ff4fcc55f..fe496a1cd 100755 --- a/tests/scripts/setup-env.sh +++ b/tests/scripts/setup-env.sh @@ -35,6 +35,11 @@ export FROM=${FROM:-"test1"} export DOCKER_NETWORK=${DOCKER_NETWORK:-"test-net"} +if [ -f "$PROJECT_DIR/tests/scripts/.env" ]; then + # shellcheck source=/dev/null + source "$PROJECT_DIR/tests/scripts/.env" +fi + mkdir -p "${OUT_DIR}" function check_command() { @@ -196,6 +201,12 @@ function add_key() { echo "$TEST_MNEMONIC" | $DAEMON keys add "$name" --index "$index" --home "$NODE_HOME" --recover } +function export_key() { + local name=$1 out=$2 + shift 2 + $DAEMON keys export "$name" "$@" --home "$NODE_HOME" >"$out" +} + function cosmos_grpc() { grpcurl -plaintext "$NODE_GRPC" "$@" }