Skip to content

Commit

Permalink
e2e tests for alliance
Browse files Browse the repository at this point in the history
antstalepresh committed Aug 30, 2023

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
1 parent fa3acc8 commit 3c20e93
Showing 4 changed files with 219 additions and 70 deletions.
83 changes: 83 additions & 0 deletions test/alliance/delegate.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
#!/bin/bash

echo ""
echo "#################################################"
echo "# Alliance: bridge funds and create an alliance #"
echo "#################################################"
echo ""

VALIDATOR="validator"
MAIN_HOME="$HOME/.chihuahuad"
MAIN_BINARY="chihuahuad --home=$MAIN_HOME"
MAIN_CHAIN_ID="chihuahua"
MAIN_DENOM="uhuahua"
MAIN_TX_FLAGS="--keyring-backend test --chain-id $MAIN_CHAIN_ID --from $VALIDATOR -y --fees=1000$MAIN_DENOM"

COUNTER_HOME="$HOME/.terrad"
COUNTER_BINARY="terrad --home=$COUNTER_HOME"
COUNTER_CHAIN_ID="terra"
COUNTER_DENOM="uluna"
COUNTER_TX_FLAGS="--keyring-backend test --chain-id $COUNTER_CHAIN_ID --from $VALIDATOR -y --fees=1000$COUNTER_DENOM --broadcast-mode block"

AMOUNT_TO_DELEGATE=10000000000
VAL_WALLET_1=$($COUNTER_BINARY keys show validator -a --keyring-backend test)
VAL_WALLET_2=$($MAIN_BINARY keys show validator -a --keyring-backend test)

echo "Sending tokens from validator wallet on counter chain to validator wallet on main"
IBC_TRANSFER=$($COUNTER_BINARY tx ibc-transfer transfer transfer channel-0 $VAL_WALLET_2 $AMOUNT_TO_DELEGATE$COUNTER_DENOM $COUNTER_TX_FLAGS -o json | jq -r '.raw_log' )

if [[ "$IBC_TRANSFER" == "failed to execute message"* ]]; then
echo "Error: IBC transfer failed, with error: $IBC_TRANSFER"
exit 1
fi

ACCOUNT_BALANCE=""
IBC_DENOM=""
while [ "$ACCOUNT_BALANCE" == "" ]; do
IBC_DENOM=$($MAIN_BINARY q bank balances $VAL_WALLET_2 -o json | jq -r '.balances[0].denom')
if [ "$IBC_DENOM" != "$MAIN_DENOM" ]; then
ACCOUNT_BALANCE=$($MAIN_BINARY q bank balances $VAL_WALLET_2 -o json | jq -r '.balances[0].amount')
fi
sleep 2
done

echo "Creating an alliance with the denom $IBC_DENOM"
PROPOSAL_HEIGHT=$($MAIN_BINARY tx gov submit-legacy-proposal create-alliance $IBC_DENOM 5 0 5 0 0.99 1s --deposit 10000000000$MAIN_DENOM $MAIN_TX_FLAGS -o json | jq -r '.height')
sleep 5
PROPOSAL_ID=$($MAIN_BINARY query gov proposals --count-total -o json --output json | jq .proposals[-1].id -r)
VOTE_RES=$($MAIN_BINARY tx gov vote $PROPOSAL_ID yes $MAIN_TX_FLAGS -o json)

ALLIANCE="null"
while [ "$ALLIANCE" == "null" ]; do
echo "Waiting for alliance with denom $IBC_DENOM to be created"
ALLIANCE=$($MAIN_BINARY q alliance alliances -o json | jq -r '.alliances[0]')
sleep 2
done

echo "Delegating $AMOUNT_TO_DELEGATE to the alliance $IBC_DENOM"
VAL_ADDR=$($MAIN_BINARY query staking validators --output json | jq .validators[0].operator_address --raw-output)
DELEGATE_RES=$($MAIN_BINARY tx alliance delegate $VAL_ADDR $AMOUNT_TO_DELEGATE$IBC_DENOM $MAIN_TX_FLAGS -o json)
sleep 5

DELEGATIONS=$($MAIN_BINARY query alliance delegation $VAL_WALLET_2 $VAL_ADDR $IBC_DENOM -o json | jq -r '.delegation.balance.amount')
if [[ "$DELEGATIONS" == "0" ]]; then
echo "Error: Alliance delegations expected to be bigger than 0"
exit 1
fi

echo "Query bank balance after alliance creation"
TOTAL_SUPPLY_BEFORE_ALLIANCE=$($MAIN_BINARY query bank total --denom $MAIN_DENOM --height $PROPOSAL_HEIGHT -o json | jq -r '.amount')
sleep 10
TOTAL_SUPPLY_AFTER_ALLIANCE=$($MAIN_BINARY query bank total --denom $MAIN_DENOM -o json | jq -r '.amount')
TOTAL_SUPPLY_INCREMENT=$(($TOTAL_SUPPLY_BEFORE_ALLIANCE - $TOTAL_SUPPLY_AFTER_ALLIANCE))

if [ "$TOTAL_SUPPLY_INCREMENT" -gt 100000 ] && [ "$TOTAL_SUPPLY_INCREMENT" -lt 1000000 ]; then
echo "Error: Something went wrong, total supply of $MAIN_DENOM has increased out of range 100_000 between 1_000_000. current value $TOTAL_SUPPLY_INCREMENT"
exit 1
fi

echo ""
echo "#########################################################"
echo "# Success: Alliance bridge funds and create an alliance #"
echo "#########################################################"
echo ""
35 changes: 34 additions & 1 deletion test/relayer/config/config.yaml
Original file line number Diff line number Diff line change
@@ -54,14 +54,47 @@ chains:
min-loop-duration: 0s
extension-options: []
feegrants: null
terra:
type: cosmos
value:
key-directory: test/relayer/keys/terra
key: rly3
chain-id: terra
rpc-addr: http://127.0.0.1:26658
account-prefix: terra
keyring-backend: test
gas-adjustment: 1.3
gas-prices: 0.02uluna
min-gas-amount: 0
max-gas-amount: 0
debug: false
timeout: 20s
block-timeout: ""
output-format: json
sign-mode: direct
extra-codecs: []
coin-type: null
signing-algorithm: ""
broadcast-mode: batch
min-loop-duration: 0s
extension-options: []
feegrants: null
paths:
chi-osmo:
src:
chain-id: chihuahua
dst:
chain-id: osmosis
src-channel-filter:
rule: ""
channel-list: []
chi-terra:
src:
chain-id: chihuahua
client-id: 07-tendermint-0
connection-id: connection-0
dst:
chain-id: osmosis
chain-id: terra
client-id: 07-tendermint-0
connection-id: connection-0
src-channel-filter:
33 changes: 33 additions & 0 deletions test/relayer/config/config_temp.yaml
Original file line number Diff line number Diff line change
@@ -54,6 +54,31 @@ chains:
min-loop-duration: 0s
extension-options: []
feegrants: null
terra:
type: cosmos
value:
key-directory: test/relayer/keys/terra
key: rly3
chain-id: terra
rpc-addr: http://127.0.0.1:26658
account-prefix: terra
keyring-backend: test
gas-adjustment: 1.3
gas-prices: 0.02uluna
min-gas-amount: 0
max-gas-amount: 0
debug: false
timeout: 20s
block-timeout: ""
output-format: json
sign-mode: direct
extra-codecs: []
coin-type: null
signing-algorithm: ""
broadcast-mode: batch
min-loop-duration: 0s
extension-options: []
feegrants: null
paths:
chi-osmo:
src:
@@ -63,3 +88,11 @@ paths:
src-channel-filter:
rule: ""
channel-list: []
chi-terra:
src:
chain-id: chihuahua
dst:
chain-id: terra
src-channel-filter:
rule: ""
channel-list: []
138 changes: 69 additions & 69 deletions test/setup_ibc.sh
Original file line number Diff line number Diff line change
@@ -1,96 +1,96 @@
#!/bin/bash
set -eux

####################### Config variables & functions #######################
# Common
VALIDATOR="validator"
NODE_IP="localhost"

# Chi configs
CHI_CHAIN_ID="chihuahua"
CHI_MONIKER="chihuahua"
CHI_HOME="$HOME/.chihuahuad"
CHI_BINARY="chihuahuad --home=$CHI_HOME"
CHI_TX_FLAGS="--keyring-backend test --chain-id $CHI_CHAIN_ID --from $VALIDATOR -y --fees=1000uhuahua"
CHI_RPC_LADDR="$NODE_IP:26657"
CHI_P2P_LADDR="$NODE_IP:26656"
CHI_GRPC_ADDR="$NODE_IP:9090"

# Osmo configs
OSMO_CHAIN_ID="osmosis"
OSMO_MONIKER="osmosis"
OSMO_HOME="$HOME/.osmosisd"
OSMO_BINARY="osmosisd --home=$OSMO_HOME"
OSMO_TX_FLAGS="--keyring-backend test --chain-id $OSMO_CHAIN_ID --from $VALIDATOR -y --fees=1000uosmo"
OSMO_RPC_LADDR="$NODE_IP:26658"
OSMO_P2P_LADDR="$NODE_IP:26646"
OSMO_GRPC_ADDR="$NODE_IP:9091"
# Main configs
MAIN_CHAIN_ID="chihuahua"
MAIN_MONIKER="chihuahua"
MAIN_HOME="$HOME/.chihuahuad"
MAIN_BINARY="chihuahuad --home=$MAIN_HOME"
MAIN_TX_FLAGS="--keyring-backend test --chain-id $MAIN_CHAIN_ID --from $VALIDATOR -y --fees=1000uhuahua"
MAIN_RPC_LADDR="$NODE_IP:26657"
MAIN_P2P_LADDR="$NODE_IP:26656"
MAIN_GRPC_ADDR="$NODE_IP:9090"

# Counter configs
COUNTER_CHAIN_ID="terra"
COUNTER_MONIKER="terra"
COUNTER_HOME="$HOME/.terrad"
COUNTER_BINARY="terrad --home=$COUNTER_HOME"
COUNTER_TX_FLAGS="--keyring-backend test --chain-id $COUNTER_CHAIN_ID --from $VALIDATOR -y --fees=1000uluna"
COUNTER_RPC_LADDR="$NODE_IP:26658"
COUNTER_P2P_LADDR="$NODE_IP:26646"
COUNTER_GRPC_ADDR="$NODE_IP:9091"


####################### Initializate chains #######################
echo "==============> Starting chain initialization...<=============="
# Clean start
killall $CHI_BINARY &> /dev/null || true
killall $OSMO_BINARY &> /dev/null || true
killall $MAIN_BINARY &> /dev/null || true
killall $COUNTER_BINARY &> /dev/null || true
killall rly 2> /dev/null || true
rm -rf $CHI_HOME
rm -rf $OSMO_HOME
rm -rf $MAIN_HOME
rm -rf $COUNTER_HOME
rm -rf ./test/relayer/keys
rm -rf ./test/logs
mkdir ./test/logs
cp ./test/relayer/config/config_temp.yaml ./test/relayer/config/config.yaml

# Chi chain init
$CHI_BINARY init --chain-id $CHI_CHAIN_ID $CHI_MONIKER
sed -i '' 's/"voting_period": "172800s"/"voting_period": "30s"/g' $CHI_HOME/config/genesis.json
sed -i '' 's/"max_deposit_period": "172800s"/"max_deposit_period": "30s"/g' $CHI_HOME/config/genesis.json
sed -i '' 's/stake/uhuahua/g' $CHI_HOME/config/genesis.json
sed -i -E "s|keyring-backend = \".*\"|keyring-backend = \"test\"|g" $CHI_HOME/config/client.toml
sed -i -E "s|minimum-gas-prices = \".*\"|minimum-gas-prices = \"0uhuahua\"|g" $CHI_HOME/config/app.toml

$CHI_BINARY keys add $VALIDATOR --keyring-backend=test
$CHI_BINARY genesis add-genesis-account $($CHI_BINARY keys show $VALIDATOR --keyring-backend=test -a) 1000000000000000000uhuahua
$CHI_BINARY genesis gentx validator 10000000000uhuahua --keyring-backend=test --chain-id=$CHI_CHAIN_ID
$CHI_BINARY genesis collect-gentxs

# Osmo chain init
$OSMO_BINARY init --chain-id $OSMO_CHAIN_ID $OSMO_MONIKER
sed -i '' 's/"voting_period": "172800s"/"voting_period": "30s"/g' $OSMO_HOME/config/genesis.json
sed -i '' 's/"max_deposit_period": "172800s"/"max_deposit_period": "30s"/g' $OSMO_HOME/config/genesis.json
sed -i '' 's/stake/uosmo/g' $OSMO_HOME/config/genesis.json
sed -i -E "s|keyring-backend = \".*\"|keyring-backend = \"test\"|g" $OSMO_HOME/config/client.toml
sed -i -E "s|minimum-gas-prices = \".*\"|minimum-gas-prices = \"0uosmo\"|g" $OSMO_HOME/config/app.toml
sed -i -E "s|chain-id = \"\"|chain-id = \"${OSMO_CHAIN_ID}\"|g" $OSMO_HOME/config/client.toml
sed -i -E "s|node = \".*\"|node = \"tcp://${OSMO_RPC_LADDR}\"|g" $OSMO_HOME/config/client.toml

$OSMO_BINARY keys add $VALIDATOR --keyring-backend=test
$OSMO_BINARY add-genesis-account $($OSMO_BINARY keys show $VALIDATOR --keyring-backend=test -a) 1000000000000000000uosmo
$OSMO_BINARY gentx validator 10000000000uosmo --keyring-backend=test --chain-id=$OSMO_CHAIN_ID
$OSMO_BINARY collect-gentxs
# Main chain init
$MAIN_BINARY init --chain-id $MAIN_CHAIN_ID $MAIN_MONIKER
sed -i '' 's/"voting_period": "172800s"/"voting_period": "30s"/g' $MAIN_HOME/config/genesis.json
sed -i '' 's/"max_deposit_period": "172800s"/"max_deposit_period": "30s"/g' $MAIN_HOME/config/genesis.json
sed -i '' 's/stake/uhuahua/g' $MAIN_HOME/config/genesis.json
sed -i -E "s|keyring-backend = \".*\"|keyring-backend = \"test\"|g" $MAIN_HOME/config/client.toml
sed -i -E "s|minimum-gas-prices = \".*\"|minimum-gas-prices = \"0uhuahua\"|g" $MAIN_HOME/config/app.toml

$MAIN_BINARY keys add $VALIDATOR --keyring-backend=test
$MAIN_BINARY genesis add-genesis-account $($MAIN_BINARY keys show $VALIDATOR --keyring-backend=test -a) 1000000000000000000uhuahua
$MAIN_BINARY genesis gentx validator 10000000000uhuahua --keyring-backend=test --chain-id=$MAIN_CHAIN_ID
$MAIN_BINARY genesis collect-gentxs

# Counter chain init
$COUNTER_BINARY init --chain-id $COUNTER_CHAIN_ID $COUNTER_MONIKER
sed -i '' 's/"voting_period": "172800s"/"voting_period": "30s"/g' $COUNTER_HOME/config/genesis.json
sed -i '' 's/"max_deposit_period": "172800s"/"max_deposit_period": "30s"/g' $COUNTER_HOME/config/genesis.json
sed -i '' 's/stake/uluna/g' $COUNTER_HOME/config/genesis.json
sed -i -E "s|keyring-backend = \".*\"|keyring-backend = \"test\"|g" $COUNTER_HOME/config/client.toml
sed -i -E "s|minimum-gas-prices = \".*\"|minimum-gas-prices = \"0uluna\"|g" $COUNTER_HOME/config/app.toml
sed -i -E "s|chain-id = \"\"|chain-id = \"${COUNTER_CHAIN_ID}\"|g" $COUNTER_HOME/config/client.toml
sed -i -E "s|node = \".*\"|node = \"tcp://${COUNTER_RPC_LADDR}\"|g" $COUNTER_HOME/config/client.toml

$COUNTER_BINARY keys add $VALIDATOR --keyring-backend=test
$COUNTER_BINARY add-genesis-account $($COUNTER_BINARY keys show $VALIDATOR --keyring-backend=test -a) 1000000000000000000uluna
$COUNTER_BINARY gentx validator 10000000000uluna --keyring-backend=test --chain-id=$COUNTER_CHAIN_ID
$COUNTER_BINARY collect-gentxs


####################### Start chains #######################
echo "==============> Starting chihuahua...<=============="
$CHI_BINARY start \
--rpc.laddr tcp://${CHI_RPC_LADDR} \
--grpc.address ${CHI_GRPC_ADDR} \
--p2p.laddr tcp://${CHI_P2P_LADDR} \
$MAIN_BINARY start \
--rpc.laddr tcp://${MAIN_RPC_LADDR} \
--grpc.address ${MAIN_GRPC_ADDR} \
--p2p.laddr tcp://${MAIN_P2P_LADDR} \
--grpc-web.enable=false \
--log_level trace \
--trace \
&> ./test/logs/chi &
( tail -f -n0 ./test/logs/chi & ) | grep -q "finalizing commit of block"
echo "Chain started"

echo "==============> Starting osmosis...<=============="
$OSMO_BINARY start \
--rpc.laddr tcp://${OSMO_RPC_LADDR} \
--grpc.address ${OSMO_GRPC_ADDR} \
--p2p.laddr tcp://${OSMO_P2P_LADDR} \
echo "==============> Starting terra...<=============="
$COUNTER_BINARY start \
--rpc.laddr tcp://${COUNTER_RPC_LADDR} \
--grpc.address ${COUNTER_GRPC_ADDR} \
--p2p.laddr tcp://${COUNTER_P2P_LADDR} \
--grpc-web.enable=false \
--log_level trace \
--trace \
&> ./test/logs/osmo &
( tail -f -n0 ./test/logs/osmo & ) | grep -q "finalizing commit of block"
&> ./test/logs/terra &
( tail -f -n0 ./test/logs/terra & ) | grep -q "finalizing commit of block"
echo "Chain started"

####################### Start relayer #######################
@@ -99,22 +99,22 @@ echo "==============> Funding relayers...<=============="
RELAYER_DIR="./test/relayer"
# chihuahua1hnuduzstgj2ze7l7g5rk5x4qlw8hd7es5s8xjd
MNEMONIC_1="vessel resist soda upset gadget spread sock egg soft barely hotel local weather image gaze core game once swarm nurse target fame stay small"
# osmo1sxcqadwaef3q2t40zr2qfaegemt4jndx4nm2d6
MNEMONIC_2="lyrics matter source business aisle naive ripple kidney honey brown carpet execute kite steak come system below erupt arch neither pond sort horse satisfy"
# terra1jy6td9r477fwr4q60adr7lz4anye5y89p5cq7q
MNEMONIC_2="panther trial minimum congress note sense immune bounce muscle tray still island hub awful style square gospel fragile eight report game leaf move category"

# send tokens to relayers
$CHI_BINARY tx bank send $VALIDATOR chihuahua1hnuduzstgj2ze7l7g5rk5x4qlw8hd7es5s8xjd 1000000uhuahua $CHI_TX_FLAGS
$MAIN_BINARY tx bank send $VALIDATOR chihuahua1hnuduzstgj2ze7l7g5rk5x4qlw8hd7es5s8xjd 1000000uhuahua $MAIN_TX_FLAGS
sleep 5
$OSMO_BINARY tx bank send $VALIDATOR osmo1sxcqadwaef3q2t40zr2qfaegemt4jndx4nm2d6 1000000uosmo $OSMO_TX_FLAGS
$COUNTER_BINARY tx bank send $VALIDATOR terra1jy6td9r477fwr4q60adr7lz4anye5y89p5cq7q 1000000uluna $COUNTER_TX_FLAGS
sleep 5



echo "==============> Restoring relayer accounts...<=============="
rly keys restore chihuahua rly1 "$MNEMONIC_1" --home $RELAYER_DIR
rly keys restore osmosis rly2 "$MNEMONIC_2" --home $RELAYER_DIR
rly transact link chi-osmo --home $RELAYER_DIR
rly keys restore terra rly3 "$MNEMONIC_2" --coin-type 330 --home $RELAYER_DIR
rly transact link chi-terra --home $RELAYER_DIR

echo "==============> Starting relayers...<=============="
sleep 5
rly start --home $RELAYER_DIR &> ./test/logs/rly
rly start chi-terra --home $RELAYER_DIR &> ./test/logs/rly

0 comments on commit 3c20e93

Please sign in to comment.