mirror of
https://github.com/bisq-network/bisq.git
synced 2025-03-01 09:40:15 +01:00
179 lines
5.2 KiB
Bash
Executable file
179 lines
5.2 KiB
Bash
Executable file
#! /bin/bash
|
|
|
|
# This file must be sourced by the main driver.
|
|
|
|
source "${APITEST_SCRIPTS_HOME}/trade-simulation-env.sh"
|
|
|
|
printdate() {
|
|
echo "[$(date)] $@"
|
|
}
|
|
|
|
printbreak() {
|
|
echo ""
|
|
echo ""
|
|
}
|
|
|
|
printcmd() {
|
|
echo -en "$@\n"
|
|
}
|
|
|
|
sleeptraced() {
|
|
PERIOD="$1"
|
|
printdate "sleeping for $PERIOD"
|
|
sleep "$PERIOD"
|
|
}
|
|
|
|
commandalert() {
|
|
# Used in a script function when it needs to fail early with an error message, & pass the error code to the caller.
|
|
# usage: commandalert <$?> <msg-prefix>
|
|
if [ "$1" -ne 0 ]
|
|
then
|
|
printdate "Error: $2" >&2
|
|
exit "$1"
|
|
fi
|
|
}
|
|
|
|
# TODO rename exitonalert ?
|
|
exitoncommandalert() {
|
|
# Used in a parent script when you need it to fail immediately, with no error message.
|
|
# usage: exitoncommandalert <$?>
|
|
if [ "$1" -ne 0 ]
|
|
then
|
|
exit "$1"
|
|
fi
|
|
}
|
|
|
|
registerdisputeagents() {
|
|
# Silently register dev dispute agents. It's easy to forget.
|
|
REG_KEY="6ac43ea1df2a290c1c8391736aa42e4339c5cb4f110ff0257a13b63211977b7a"
|
|
CMD="${CLI_BASE} --port=${ARBITRATOR_PORT} registerdisputeagent --dispute-agent-type=mediator --registration-key=${REG_KEY}"
|
|
SILENT=$($CMD)
|
|
commandalert $? "Could not register dev/test mediator."
|
|
CMD="${CLI_BASE} --port=${ARBITRATOR_PORT} registerdisputeagent --dispute-agent-type=refundagent --registration-key=${REG_KEY}"
|
|
SILENT=$($CMD)
|
|
commandalert $? "Could not register dev/test refundagent."
|
|
# Do something with $SILENT to keep codacy happy.
|
|
echo "$SILENT" > /dev/null
|
|
}
|
|
|
|
getbtcoreaddress() {
|
|
CMD="bitcoin-cli -regtest -rpcport=19443 -rpcuser=apitest -rpcpassword=apitest getnewaddress"
|
|
NEW_ADDRESS=$($CMD)
|
|
echo "${NEW_ADDRESS}"
|
|
}
|
|
|
|
genbtcblocks() {
|
|
NUM_BLOCKS="$1"
|
|
SECONDS_BETWEEN_BLOCKS="$2"
|
|
ADDR_PARAM="$(getbtcoreaddress)"
|
|
CMD_PREFIX="bitcoin-cli -regtest -rpcport=19443 -rpcuser=apitest -rpcpassword=apitest generatetoaddress 1"
|
|
# Print the generatetoaddress command with double quoted address param, to make it cut & pastable from the console.
|
|
printdate "$CMD_PREFIX \"$ADDR_PARAM\""
|
|
# Now create the full generatetoaddress command to be run now.
|
|
CMD="$CMD_PREFIX $ADDR_PARAM"
|
|
for i in $(seq -f "%02g" 1 "$NUM_BLOCKS")
|
|
do
|
|
NEW_BLOCK_HASH=$(genbtcblock "$CMD")
|
|
printdate "Block Hash #$i:${NEW_BLOCK_HASH}"
|
|
sleep "$SECONDS_BETWEEN_BLOCKS"
|
|
done
|
|
}
|
|
|
|
genbtcblock() {
|
|
CMD="$1"
|
|
NEW_BLOCK_HASH=$($CMD | sed -n '2p')
|
|
echo "$NEW_BLOCK_HASH"
|
|
}
|
|
|
|
escapepluschar() {
|
|
STRING="$1"
|
|
NEW_STRING=$(echo "${STRING//+/\\+}")
|
|
echo "${NEW_STRING}"
|
|
}
|
|
|
|
printbalances() {
|
|
PORT="$1"
|
|
printcmd "${CLI_BASE} --port=${PORT} getbalance"
|
|
$CLI_BASE --port="$PORT" getbalance
|
|
}
|
|
|
|
getpaymentaccountmethods() {
|
|
CMD="$1"
|
|
CMD_OUTPUT=$($CMD)
|
|
commandalert $? "Could not get payment method ids."
|
|
printdate "Payment Method IDs:"
|
|
echo "${CMD_OUTPUT}"
|
|
}
|
|
|
|
getpaymentaccountform() {
|
|
CMD="$1"
|
|
CMD_OUTPUT=$($CMD)
|
|
commandalert $? "Could not get new payment account form."
|
|
echo "${CMD_OUTPUT}"
|
|
}
|
|
|
|
editpaymentaccountform() {
|
|
COUNTRY_CODE="$1"
|
|
CMD="python3 ${APITEST_SCRIPTS_HOME}/editf2faccountform.py $COUNTRY_CODE"
|
|
CMD_OUTPUT=$($CMD)
|
|
commandalert $? "Could not edit payment account form."
|
|
printdate "Saved payment account form as ${F2F_ACCT_FORM}."
|
|
}
|
|
|
|
getnewpaymentacctid() {
|
|
CREATE_PAYMENT_ACCT_OUTPUT="$1"
|
|
PAYMENT_ACCT_DETAIL=$(echo -e "${CREATE_PAYMENT_ACCT_OUTPUT}" | sed -n '3p')
|
|
ACCT_ID=$(echo -e "$PAYMENT_ACCT_DETAIL" | awk '{print $NF}')
|
|
echo "${ACCT_ID}"
|
|
}
|
|
|
|
getnewpaymentacctcurrency() {
|
|
CREATE_PAYMENT_ACCT_OUTPUT="$1"
|
|
PAYMENT_ACCT_DETAIL=$(echo -e "${CREATE_PAYMENT_ACCT_OUTPUT}" | sed -n '3p')
|
|
# This is brittle; it requires the account name field to have N words,
|
|
# e.g, "Face to Face Payment Account" as defined in editf2faccountform.py.
|
|
CURRENCY_CODE=$(echo -e "$PAYMENT_ACCT_DETAIL" | awk '{print $6}')
|
|
echo "${CURRENCY_CODE}"
|
|
}
|
|
|
|
createpaymentacct() {
|
|
CMD="$1"
|
|
CMD_OUTPUT=$($CMD)
|
|
commandalert $? "Could not create new payment account."
|
|
echo "${CMD_OUTPUT}"
|
|
}
|
|
|
|
getpaymentaccounts() {
|
|
PORT="$1"
|
|
printcmd "${CLI_BASE} --port=${PORT} getpaymentaccts"
|
|
CMD="$CLI_BASE --port=$PORT getpaymentaccts"
|
|
CMD_OUTPUT=$($CMD)
|
|
commandalert $? "Could not get payment accounts."
|
|
echo "${CMD_OUTPUT}"
|
|
}
|
|
|
|
createoffer() {
|
|
CREATE_OFFER_CMD="$1"
|
|
OFFER_DESC=$($CREATE_OFFER_CMD)
|
|
|
|
# If the CLI command exited with an error, print the CLI error, and
|
|
# return from this function now, passing the error status code to the caller.
|
|
commandalert $? "Could not create offer."
|
|
|
|
OFFER_DETAIL=$(echo -e "${OFFER_DESC}" | sed -n '2p')
|
|
NEW_OFFER_ID=$(echo -e "${OFFER_DETAIL}" | awk '{print $NF}')
|
|
echo "${NEW_OFFER_ID}"
|
|
}
|
|
|
|
getcurrentprice() {
|
|
PORT="$1"
|
|
CURRENCY_CODE="$2"
|
|
CMD="$CLI_BASE --port=$PORT getbtcprice --currency-code=$CURRENCY_CODE"
|
|
CMD_OUTPUT=$($CMD)
|
|
commandalert $? "Could not get current market $CURRENCY_CODE price."
|
|
FLOOR=$(echo "$CMD_OUTPUT" | cut -d'.' -f 1)
|
|
commandalert $? "Could not get the floor of the current market $CURRENCY_CODE price."
|
|
INTEGER=$(echo "$FLOOR" | tr -cd '[[:digit:]]')
|
|
commandalert $? "Could not convert the current market $CURRENCY_CODE price string to an integer."
|
|
echo "$INTEGER"
|
|
}
|