decred.org/dcrdex@v1.0.5/dex/testing/walletpair/walletpair.sh (about) 1 #!/usr/bin/env bash 2 3 export SHELL=$(which bash) 4 SESSION="walletpair" 5 6 7 BW_ARGS=${@} 8 SIMNET="" 9 TESTNET="" 10 while [ "${1:-}" != "" ]; do 11 case "$1" in 12 --simnet) 13 SIMNET="1" 14 echo "Using simnet" 15 ;; 16 --testnet) 17 TESTNET="1" 18 echo "Using testnet" 19 ;; 20 esac 21 shift 22 done 23 24 if [ "$SIMNET" ] ; then 25 PAIR_ROOT=~/dextest/simnet-walletpair 26 CLIENT_1_ADDR="127.0.0.6:5760" 27 CLIENT_1_RPC_ADDR="127.0.0.6:5761" 28 CLIENT_2_ADDR="127.0.0.7:5762" 29 CLIENT_2_RPC_ADDR="127.0.0.7:5763" 30 else 31 PAIR_ROOT=~/dextest/walletpair 32 CLIENT_1_ADDR="127.0.0.4:5760" 33 CLIENT_1_RPC_ADDR="127.0.0.4:5761" 34 CLIENT_2_ADDR="127.0.0.5:5762" 35 CLIENT_2_RPC_ADDR="127.0.0.5:5763" 36 fi 37 38 CLIENT_1_DIR="${PAIR_ROOT}/dexc1" 39 CLIENT_2_DIR="${PAIR_ROOT}/dexc2" 40 HARNESS_DIR="${PAIR_ROOT}/harness-ctl" 41 BW_DIR=$(realpath ../../../client/cmd/bisonw) 42 BISONW="${BW_DIR}/bisonw" 43 44 cd "${BW_DIR}" 45 go build 46 cd - 47 48 mkdir -p "${HARNESS_DIR}" 49 mkdir -p "${CLIENT_1_DIR}" 50 mkdir -p "${CLIENT_2_DIR}" 51 52 CLIENT_1_CONF="${CLIENT_1_DIR}/dexc.conf" 53 rm -f "${CLIENT_1_CONF}" 54 CLIENT_1_CTL_KEY="${CLIENT_1_DIR}/ctl.key" 55 rm -f "$CLIENT_1_CTL_KEY" 56 CLIENT_1_CTL_CERT="${CLIENT_1_DIR}/ctl.cert" 57 rm -f "$CLIENT_1_CTL_CERT" 58 cat > "${CLIENT_1_CONF}" <<EOF 59 webaddr=${CLIENT_1_ADDR} 60 rpc=1 61 rpckey=${CLIENT_1_CTL_KEY} 62 rpccert=${CLIENT_1_CTL_CERT} 63 rpcuser=user 64 rpcpass=pass 65 rpcaddr=${CLIENT_1_RPC_ADDR} 66 EOF 67 68 CLIENT_1_CTL_CONF="${CLIENT_1_DIR}/dexcctl.conf" 69 rm -f "$CLIENT_1_CTL_CONF" 70 cat > "$CLIENT_1_CTL_CONF" <<EOF 71 rpcuser=user 72 rpcpass=pass 73 rpccert=${CLIENT_1_CTL_CERT} 74 rpcaddr=${CLIENT_1_RPC_ADDR} 75 simnet=${SIMNET} 76 testnet=${TESTNET} 77 EOF 78 79 CLIENT_2_CONF="${CLIENT_2_DIR}/dexc.conf" 80 rm -f "$CLIENT_2_CONF" 81 CLIENT_2_CTL_KEY="${CLIENT_2_DIR}/ctl.key" 82 rm -f "$CLIENT_2_CTL_KEY" 83 CLIENT_2_CTL_CERT="${CLIENT_2_DIR}/ctlcert.conf" 84 rm -f "$CLIENT_2_CTL_CERT" 85 cat > "$CLIENT_2_CONF" <<EOF 86 webaddr=${CLIENT_2_ADDR} 87 rpc=1 88 rpckey=${CLIENT_2_CTL_KEY} 89 rpccert=${CLIENT_2_CTL_CERT} 90 rpcuser=user 91 rpcpass=pass 92 rpcaddr=${CLIENT_2_RPC_ADDR} 93 EOF 94 95 CLIENT_2_CTL_CONF="${CLIENT_2_DIR}/dexcctl.conf" 96 rm -f "$CLIENT_2_CTL_CONF" 97 98 cat > "$CLIENT_2_CTL_CONF" <<EOF 99 rpcuser=user 100 rpcpass=pass 101 rpccert=${CLIENT_2_CTL_CERT} 102 rpcaddr=${CLIENT_2_RPC_ADDR} 103 simnet=${SIMNET} 104 testnet=${TESTNET} 105 EOF 106 107 QUIT_FILE="${HARNESS_DIR}/quit" 108 rm -f "${QUIT_FILE}" 109 cat > "${QUIT_FILE}" <<EOF 110 #!/usr/bin/env bash 111 tmux send-keys -t $SESSION:1 C-c 112 tmux send-keys -t $SESSION:2 C-c 113 sleep 1 114 tmux kill-session 115 EOF 116 chmod +x "${QUIT_FILE}" 117 118 echo "xdg-open http://${CLIENT_1_ADDR} > /dev/null 2>&1" > "${HARNESS_DIR}/bisonw1" 119 chmod +x "${HARNESS_DIR}/bisonw1" 120 121 echo "bwctl -C ${CLIENT_1_CTL_CONF} \$1" > "${HARNESS_DIR}/bw1ctl" 122 chmod +x "${HARNESS_DIR}/bw1ctl" 123 124 echo "xdg-open http://${CLIENT_2_ADDR} > /dev/null 2>&1" > "${HARNESS_DIR}/bisonw2" 125 chmod +x "${HARNESS_DIR}/bisonw2" 126 127 echo "bwctl -C ${CLIENT_2_CTL_CONF} \$1" > "${HARNESS_DIR}/bw2ctl" 128 chmod +x "${HARNESS_DIR}/bw2ctl" 129 130 tmux new-session -d -s $SESSION $SHELL 131 tmux rename-window -t $SESSION:0 'harness-ctl' 132 133 tmux new-window -t $SESSION:1 -n 'bisonw1' $SHELL 134 tmux send-keys -t $SESSION:1 "cd ${PAIR_ROOT}/dexc1" C-m 135 tmux send-keys -t $SESSION:1 "${BISONW} --appdata=${CLIENT_1_DIR} ${BW_ARGS}" C-m 136 137 tmux new-window -t $SESSION:2 -n 'bisonw1' $SHELL 138 tmux send-keys -t $SESSION:2 "cd ${PAIR_ROOT}/dexc1" C-m 139 tmux send-keys -t $SESSION:2 "${BISONW} --appdata=${CLIENT_2_DIR} ${BW_ARGS}" C-m 140 141 tmux select-window -t $SESSION:0 142 sleep 1 143 tmux send-keys -t $SESSION:0 "cd ${HARNESS_DIR}; tmux wait-for -S walletpair" C-m\; wait-for walletpair 144 tmux send-keys -t $SESSION:0 "./bisonw1; tmux wait-for -S walletpair" C-m\; wait-for walletpair 145 tmux send-keys -t $SESSION:0 "./bisonw2" C-m 146 tmux attach-session -t $SESSION