1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- #!/bin/bash
- ## https://github.com/tari-project/tari/releases
- PASSWD="${1:-}"
- AMOUNT="${2:-0}"
- TARGET="${3:-}"
- BASE="${4:-.tari}"
- TARICMD=""
- TXSEND=""
- RESERVED=""
- cd "$(dirname `readlink -f "$0"`)" || exit 1
- [ -d "${BASE}/mainnet/libtor" ] && rm -rf "${BASE}/mainnet/libtor"
- [ -d "${BASE}/mainnet/log" ] && rm -rf "${BASE}/mainnet/log"
- [ -d "${BASE}/mainnet/peer_db" ] && rm -rf "${BASE}/mainnet/peer_db"
- [ "$AMOUNT" == "update" ] && {
- command -v wget >/dev/null || exit 1
- command -v 7z >/dev/null || exit 1
- case `uname -m` in aarch64|arm64) ARCH="arm64";; x86_64|amd64) ARCH="x86_64";; *) exit 1;; esac;
- version=`echo "$TARGET" |grep -o '^v[0-9]\+\.[0-9]\+\.[0-9]\+'`
- [ -n "$version" ] && version="tags/${version}" || version="latest"
- result=`wget --no-check-certificate -qO- "https://api.github.com/repos/tari-project/tari/releases/${version}"`
- url=`echo "$result" |grep '"browser_download_url":' |grep 'tari_suite-[0-9]' |grep 'linux' |grep -v '.sha256' |grep "${ARCH}" |cut -d'"' -f4`
- [ -n "$url" ] || exit 1
- tmpPath=`mktemp -d`
- trap "rm -rf ${tmpPath}" EXIT
- wget --no-check-certificate -qO "${tmpPath}/tari_suite.zip" "${url}" || exit 1
- 7z e "${tmpPath}/tari_suite.zip" "minotari_console_wallet" -o"${tmpPath}"
- [ -f "${tmpPath}/minotari_console_wallet" ] || exit 1
- cp -rf "${tmpPath}/minotari_console_wallet" "./minotari_console_wallet" || exit 1
- chmod 777 "./minotari_console_wallet"
- exit "$?"
- }
- [ -f "./minotari_console_wallet" ] || exit 1
- [ "$AMOUNT" == "new" ] && {
- seedFile=`mktemp`; trap "rm -rf ${seedFile}" EXIT
- ./minotari_console_wallet --non-interactive-mode --network Mainnet --base-path "${BASE}" --seed-words-file-name "${seedFile}" --password "${PASSWD}"
- [ $? -eq 0 ] || exit 1
- rm -rf "${BASE}"
- TARGET=`cat "${seedFile}"`
- ./minotari_console_wallet --non-interactive-mode --network Mainnet --base-path "${BASE}" -p base_node.mining_enabled=false -p wallet.grpc_enabled=false --password "${PASSWD}" --recovery --seed-words "${TARGET}"
- [ $? -eq 0 ] && echo -e "\n\n\033[32mNew Wallet Seed\033[0m: \033[31m${TARGET}\033[0m\n\n\n" && exit 0 || exit 1
- }
- [ "$AMOUNT" == "seed" ] && {
- ./minotari_console_wallet --non-interactive-mode --network Mainnet --base-path "${BASE}" -p base_node.mining_enabled=false -p wallet.grpc_enabled=false --password "${PASSWD}" --recovery --seed-words "${TARGET}"
- exit "$?"
- }
- [ "$AMOUNT" == "ui" ] && {
- ./minotari_console_wallet --network Mainnet --base-path "${BASE}" -p base_node.mining_enabled=false -p wallet.grpc_enabled=false --password "${PASSWD}"
- exit "$?"
- }
- result=`./minotari_console_wallet --non-interactive-mode --network Mainnet --base-path "${BASE}" -p base_node.mining_enabled=false -p wallet.grpc_enabled=false --password "${PASSWD}" --command-mode-auto-exit sync 2>/dev/null`
- block=`echo "$result" |grep -o '^Completed! Height: [0-9]\+,' |grep -o '[0-9]\+'`
- echo "[$(date '+%Y/%m/%d %H:%M:%S')]"
- [ -n "$block" ] && [ "$block" -gt "0" ] && echo "Sync Block: ${block}"
- echo "$result" |grep '^Available balance:\|^Pending incoming balance:\|^Pending outgoing balance:'
- amount=`echo "$result" |grep '^Available balance:' |grep ' T$' |grep -o '[0-9]\+' |head -n1`
- [ -n "$amount" ] && [ "$amount" -gt "0" ] || exit 1
- [ -n "$AMOUNT" ] || AMOUNT="0"
- [ "$AMOUNT" -eq "0" ] && exit 0
- [ "$AMOUNT" -gt "0" ] && [ "$AMOUNT" -ge "$amount" ] && AMOUNT="$amount"
- [ "$AMOUNT" -eq "-1" ] && AMOUNT="$amount"
- [ "$AMOUNT" -le "-2" ] && MINAMOUNT="$((10 ** -AMOUNT))" && [ "$((amount - MINAMOUNT))" -ge "0" ] && AMOUNT="$amount"
- [ "$AMOUNT" -le "0" ] && exit 1
- [ -n "$RESERVED" ] && [ "$RESERVED" -gt "0" ] && [ "$AMOUNT" -gt "0" ] && AMOUNT="$((AMOUNT - RESERVED))"
- [ -n "$TARGET" ] || exit 2
- [ ! -n "$TARICMD" ] && [ "${#TARGET}" -eq "91" ] && TARICMD="send-minotari"
- [ ! -n "$TARICMD" ] && [ "${#TARGET}" -gt "91" ] && TARICMD="send-one-sided-to-stealth-address"
- [ -n "$TARICMD" ] || exit 2
- result=`./minotari_console_wallet --non-interactive-mode --network Mainnet --base-path "${BASE}" -p base_node.mining_enabled=false -p wallet.grpc_enabled=false --password "${PASSWD}" --command-mode-auto-exit "${TARICMD}" "${AMOUNT}T" "${TARGET}" 2>&1`
- TxID=`echo "$result" |grep '^Transaction ID:' |grep -o '[0-9]\+'`
- [ -n "$TxID" ] && {
- echo -e "Sending: ${AMOUNT} XTM --> ${TARGET}\nTxID[$(date '+%Y/%m/%d %H:%M:%S')]: ${TxID}\n"
- [ -n "${TXSEND}" ] && echo "[$(date '+%Y/%m/%d %H:%M:%S')] ${block} ${TxID} ${AMOUNT} ${TARGET}" >>"${TXSEND}"
- exit 0
- }
- exit 1
|