|
| 1 | +#!/bin/bash |
| 2 | +set -eux |
| 3 | + |
| 4 | +RLY="${RLY_BIN} --debug" |
| 5 | + |
| 6 | +# XXX set proper value |
| 7 | +PATH_NAME=ibc01 |
| 8 | +TX_INTERVAL=120 |
| 9 | +TM_USER_ADDRESS=$(${RLY} tendermint keys show ibc0 testkey) |
| 10 | + |
| 11 | +retry() { |
| 12 | + local -r -i max_attempts="$1"; shift |
| 13 | + local -r cmd="$@" |
| 14 | + local -i attempt_num=1 |
| 15 | + |
| 16 | + until $cmd |
| 17 | + do |
| 18 | + if (( attempt_num == max_attempts )) |
| 19 | + then |
| 20 | + echo "Attempt $attempt_num failed and there are no more attempts left!" |
| 21 | + return 1 |
| 22 | + else |
| 23 | + echo "Attempt $attempt_num failed! Trying again in $attempt_num seconds..." |
| 24 | + sleep $(( attempt_num++ )) |
| 25 | + fi |
| 26 | + done |
| 27 | +} |
| 28 | + |
| 29 | +TMPFILE=/tmp/tm2eth-test-tx-timeout.log |
| 30 | + |
| 31 | +echo "!!! ibc0 -> ibc1 !!!" |
| 32 | + |
| 33 | +docker exec tendermint-chain sh -c "simd --home /root/data/ibc0 tx --keyring-backend=test --from ${TM_USER_ADDRESS} --chain-id ibc0 mockapp send --packet-timeout-height 0-1 mockapp channel-0 'mock packet data' --yes" |
| 34 | +sleep ${TX_INTERVAL} |
| 35 | +retry 10 ${RLY} tx relay ${PATH_NAME} 2>&1 | tee $TMPFILE |
| 36 | +if grep -i 'Error' $TMPFILE; then exit 1; fi |
| 37 | +grep -e 'core\.(\*RelayMsgs)\.Send' $TMPFILE | grep ProofUnreceived |
| 38 | + |
| 39 | + |
| 40 | +echo "!!! ibc1 -> ibc0 !!!" |
| 41 | +RPC_ADDRESS_B=$($RLY config show | jq -r '.chains[] | select(.chain.chain_id == "ibc1").chain.rpc_addr') |
| 42 | +PORT_B=$($RLY paths list --json | jq -r --arg path $PATH_NAME '.[$path].dst."port-id"') |
| 43 | +CHANNEL_B=$($RLY paths list --json | jq -r --arg path $PATH_NAME '.[$path].dst."channel-id"') |
| 44 | +MNEMONIC_B=$($RLY config show | jq -r '.chains[] | select(.chain.chain_id == "ibc1").chain.signer.mnemonic') |
| 45 | +BOB_INDEX=2 |
| 46 | +ADDRESSES_DIR_B=$(dirname $0)/../../../chains/ethereum/contracts/addresses |
| 47 | +MOCKAPP_CONTRACT_B=`cat ${ADDRESSES_DIR_B}/AppV1` |
| 48 | + |
| 49 | +cast send \ |
| 50 | + --rpc-url $RPC_ADDRESS_B \ |
| 51 | + --mnemonic "$MNEMONIC_B" \ |
| 52 | + --mnemonic-index ${BOB_INDEX} \ |
| 53 | + $MOCKAPP_CONTRACT_B \ |
| 54 | + 'sendPacket(bytes,string,string,(uint64,uint64),uint64)' \ |
| 55 | + $(cast from-utf8 'mock packet data') \ |
| 56 | + $PORT_B \ |
| 57 | + $CHANNEL_B \ |
| 58 | + '(0,100000)' \ |
| 59 | + $(date -d 1sec +%s%N) |
| 60 | +sleep ${TX_INTERVAL} |
| 61 | +sleep ${TX_INTERVAL} |
| 62 | +cast block-number --rpc-url $RPC_ADDRESS_B |
| 63 | +${RLY} tx relay $PATH_NAME 2>&1 | tee $TMPFILE |
| 64 | + |
| 65 | +if grep -i 'Error' $TMPFILE; then exit 1; fi |
| 66 | +grep -e 'core\.(\*RelayMsgs)\.Send' $TMPFILE | grep ProofUnreceived |
0 commit comments