mirror of
https://github.com/AthanorLabs/atomic-swap.git
synced 2026-01-10 06:38:04 -05:00
swapd daemon setup/start decoupled from CLI parsing (#354)
This commit is contained in:
@@ -38,22 +38,43 @@ ALICE_MULTIADDR=/ip4/127.0.0.1/tcp/9933/p2p/12D3KooWAAxG7eTEHr2uBVw3BDMxYsxyqfKv
|
||||
ALICE_LIBP2PKEY=./tests/alice-libp2p.key
|
||||
LOG_LEVEL=debug
|
||||
|
||||
ALICE_RPC_PORT=5000
|
||||
BOB_RPC_PORT=5001
|
||||
CHARLIE_RPC_PORT=5002
|
||||
|
||||
start-swapd() {
|
||||
local swapd_user="${1:?}"
|
||||
local swapd_flags=("${@:2}")
|
||||
local rpc_port="${2:?}"
|
||||
local swapd_flags=("${@:3}" "--rpc-port=${rpc_port}")
|
||||
local log_file="${SWAP_TEST_DATA_DIR}/${swapd_user}-swapd.log"
|
||||
|
||||
echo "Starting ${swapd_user^}'s swapd, logs in ${SWAP_TEST_DATA_DIR}/${swapd_user}-swapd.log"
|
||||
./bin/swapd "${swapd_flags[@]}" &>"${log_file}" &
|
||||
local swapd_pid="${!}"
|
||||
echo "${swapd_pid}" >"${SWAP_TEST_DATA_DIR}/${swapd_user}-swapd.pid"
|
||||
sleep 1
|
||||
if ! kill -0 "${swapd_pid}" 2>/dev/null; then
|
||||
echo "Failed to start ${swapd_user^}'s swapd"
|
||||
echo "=============== Failed logs ==============="
|
||||
cat "${log_file}"
|
||||
echo "============================================"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Wait up to 60 seconds for the daemon's port to be listening
|
||||
for i in {1..60}; do
|
||||
sleep 1
|
||||
|
||||
# Test if pid is still alive, leave loop if it is not
|
||||
if ! kill -0 "${swapd_pid}" 2>/dev/null; then
|
||||
break
|
||||
fi
|
||||
|
||||
# Test if RPC port is listening, exit success if it is
|
||||
if is-port-open "${rpc_port}"; then
|
||||
echo "${swapd_user^}'s swapd instance is listening after ${i} seconds"
|
||||
return
|
||||
fi
|
||||
done
|
||||
|
||||
echo "Failed to start ${swapd_user^}'s swapd"
|
||||
echo "=============== Failed logs ==============="
|
||||
cat "${log_file}"
|
||||
echo "============================================"
|
||||
stop-daemons
|
||||
exit 1
|
||||
}
|
||||
|
||||
stop-swapd() {
|
||||
@@ -61,27 +82,30 @@ stop-swapd() {
|
||||
stop-program "${swapd_user}-swapd"
|
||||
}
|
||||
|
||||
wait-rpc-started() {
|
||||
local swapd_user="${1}"
|
||||
local rpc_port="${1}"
|
||||
|
||||
}
|
||||
|
||||
start-daemons() {
|
||||
start-monerod-regtest
|
||||
start-ganache
|
||||
|
||||
start-swapd alice \
|
||||
start-swapd alice "${ALICE_RPC_PORT}" \
|
||||
--dev-xmrtaker \
|
||||
"--log-level=${LOG_LEVEL}" \
|
||||
"--data-dir=${SWAP_TEST_DATA_DIR}/alice" \
|
||||
"--libp2p-key=${ALICE_LIBP2PKEY}" \
|
||||
--deploy
|
||||
|
||||
#
|
||||
# Wait up to 60 seconds for Alice's swapd instance to start and deploy the swap contract
|
||||
#
|
||||
CONTRACT_ADDR_FILE="${SWAP_TEST_DATA_DIR}/alice/contract-addresses.json"
|
||||
for _ in {1..60}; do
|
||||
if [[ -f "${CONTRACT_ADDR_FILE}" ]]; then
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
if [[ ! -f "${CONTRACT_ADDR_FILE}" ]]; then
|
||||
echo "Failed to get Alice's deployed contract address file"
|
||||
stop-daemons
|
||||
exit 1
|
||||
fi
|
||||
|
||||
SWAP_FACTORY_ADDR="$(jq -r .swapFactory "${CONTRACT_ADDR_FILE}")"
|
||||
FORWARDER_ADDR="$(jq -r .forwarder "${CONTRACT_ADDR_FILE}")"
|
||||
if [[ -z "${SWAP_FACTORY_ADDR}" ]] || [[ -z "${FORWARDER_ADDR}" ]]; then
|
||||
@@ -90,7 +114,7 @@ start-daemons() {
|
||||
exit 1
|
||||
fi
|
||||
|
||||
start-swapd bob \
|
||||
start-swapd bob "${BOB_RPC_PORT}" \
|
||||
--dev-xmrmaker \
|
||||
"--log-level=${LOG_LEVEL}" \
|
||||
"--data-dir=${SWAP_TEST_DATA_DIR}/bob" \
|
||||
@@ -98,17 +122,13 @@ start-daemons() {
|
||||
"--bootnodes=${ALICE_MULTIADDR}" \
|
||||
"--contract-address=${SWAP_FACTORY_ADDR}"
|
||||
|
||||
start-swapd charlie \
|
||||
start-swapd charlie "${CHARLIE_RPC_PORT}" \
|
||||
"--log-level=${LOG_LEVEL}" \
|
||||
--data-dir "${SWAP_TEST_DATA_DIR}/charlie" \
|
||||
--libp2p-port=9955 \
|
||||
--rpc-port 5002 \
|
||||
"--bootnodes=${ALICE_MULTIADDR}" \
|
||||
"--contract-address=${SWAP_FACTORY_ADDR}" \
|
||||
"--relayer"
|
||||
|
||||
# Give time for Bob and Charlie's swapd instances to fully start
|
||||
sleep 5
|
||||
}
|
||||
|
||||
stop-daemons() {
|
||||
|
||||
Reference in New Issue
Block a user