#!/usr/bin/env bash printf "Searching for auto-update transactions to approve...\n"; tx=$( curl --silent --url "http://localhost:12391/arbitrary/search?txGroupId=1&service=1&confirmationStatus=CONFIRMED&limit=1&reverse=true" ); if fgrep --silent '"approvalStatus":"PENDING"' <<< "${tx}"; then true else echo "Can't find any pending transactions" exit fi sig=$( perl -n -e 'print $1 if m/"signature":"(\w+)"/' <<< "${tx}" ) if [ -z "${sig}" ]; then printf "Can't find transaction signature in JSON:\n%s\n" "${tx}" exit fi printf "Found transaction %s\n" $sig; printf "\nPaste your dev account private key:\n"; IFS= read -s privkey printf "\n" # Convert to public key pubkey=$( curl --silent --url "http://localhost:12391/utils/publickey" --data @- <<< "${privkey}" ); if egrep -v --silent '^\w{44,46}$' <<< "${pubkey}"; then printf "Invalid response from API - was your private key correct?\n%s\n" "${pubkey}" exit fi printf "Your public key: %s\n" ${pubkey} # Convert to address address=$( curl --silent --url "http://localhost:12391/addresses/convert/${pubkey}" ); printf "Your address: %s\n" ${address} # Grab last reference lastref=$( curl --silent --url "http://localhost:12391/addresses/lastreference/{$address}" ); printf "Your last reference: %s\n" ${lastref} # Build GROUP_APPROVAL transaction timestamp=$( date +%s )000 tx_json=$( cat < 0; seconds--)); do if [ "${seconds}" = "1" ]; then plural="" fi printf "\rBroadcasting in %d second%s...(CTRL-C) to abort " $seconds $plural sleep 1 done printf "\rBroadcasting signed GROUP_APPROVAL transaction... \n" result=$( curl --silent --url "http://localhost:12391/transactions/process" --data @- <<< "${signed_tx}" ) printf "API response:\n%s\n" "${result}"