From 0f21f9c9931fccb4f5eb421ab4c0d418a35b6eec Mon Sep 17 00:00:00 2001 From: c0decave Date: Tue, 18 May 2021 20:29:26 +0200 Subject: [PATCH] init --- README.md | 47 +++++++++++++++++++++++ blk.sh | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 160 insertions(+) create mode 100644 README.md create mode 100755 blk.sh diff --git a/README.md b/README.md new file mode 100644 index 0000000..0382b43 --- /dev/null +++ b/README.md @@ -0,0 +1,47 @@ +# blk.sh + +original script from blackcoin.nl (https://blackcoin.nl/scripts-for-using-blackcoin-from-the-command-line-interface/) +adjusted to my likes yikes! +also i added several functions like setpassword, changepassword, balance and addr + +# Configuration + +ATTENTION, you need to adjust those values + +* the directory the blackcoin-cli is located at +``` +bin\_home="/home/blk/bin/" +``` +* the directory specified with --datadir, if not specified default is $HOME/.blackmore +``` +data_dir="/home/blk/.blackmore/" +``` +* your username +``` +rpc_user="YOURUSER" +``` +* your password for RPC access +``` +rpc_password="YOURPASSWORD" +``` + +# Usage + +Commands available +``` + info: Check basic info. \n + stake: Enables staking; Passes password without storing it in memory. \n + latest: Compares latest block with the BlackcoinNL hosted block explorer. \n + dust: Prunes dust from wallet. Dust is defined as less than .0001BLK. Requires jq. \n + past24: Shows staking numbers from the past 24hrs. \n + setpassword: Set encryption password if wallet is *UNENCRYPTED*. \n + changepassword: change wallet password. \n + balance: show balance of addresses (using curl). \n + alladdr: show all addr and balances \n + addr: show addresses of default wallet \n" +``` +Example: +``` +blk.sh info +``` + diff --git a/blk.sh b/blk.sh new file mode 100755 index 0000000..f859a5b --- /dev/null +++ b/blk.sh @@ -0,0 +1,113 @@ +#!/bin/bash +# original script from blackcoin.nl (https://blackcoin.nl/scripts-for-using-blackcoin-from-the-command-line-interface/) +# adjusted to my likes yikes! + +# ATTENTION, you need to adjust those values +# the directory the blackcoin-cli is located at +bin_home="/home/blk/bin/" +# the directory specified with --datadir, if not specified default is $HOME/.blackmore +data_dir="/home/blk/.blackmore/" +# username +rpc_user="YOURUSER" +# password for RPC access +rpc_password="YOURPASSWORD" + +usage="Usage: blk [ info | stake | latest | dust | past24 | setpassword | changepassword | balance | addr | alladdr ] \n \n + info: Check basic info. \n + stake: Enables staking; Passes password without storing it in memory. \n + latest: Compares latest block with the BlackcoinNL hosted block explorer. \n + dust: Prunes dust from wallet. Dust is defined as less than .0001BLK. Requires jq. \n + past24: Shows staking numbers from the past 24hrs. \n + setpassword: Set encryption password if wallet is *UNENCRYPTED*. \n + changepassword: change wallet password. \n + balance: show balance of addresses (using curl). \n + alladdr: show all addr and balances \n + addr: show addresses of default wallet \n" + +blkc="$bin_home/blackmore-cli -rpcuser=$rpc_user -rpcpassword=$rpc_password -datadir=$data_dir" + +case $1 in + +balance ) account='' + myaddr='' + if [ $# -ne 2 ]; then + echo 'No accountname given, using default' + myaddr=`$blkc getaddressesbyaccount ""| jq .|grep \"B|sed -e 's/[ ",]//g'` + else + account=$2 + myaddr=`$blkc getaddressesbyaccount $account| jq .|grep \"B|sed -e 's/[ ",]//g'` + fi + for item in $myaddr; do + bal=`curl "https://chainz.cryptoid.info/ric/api.dws?q=getbalance&&a=$item" 2>/dev/null` + echo "$item: $bal" + done + ;; + +alladdr ) $blkc listaddressgroupings + ;; +info ) + $blkc getwalletinfo | egrep "balance|staked_balance|txcount|unconfirmed_balance|immature_balance|total_balance"; + $blkc getnetworkinfo | egrep "subversion|connections"; + $blkc getinfo | egrep "blocks"; + $blkc getblockchaininfo | egrep "best"; + $blkc getstakinginfo | egrep "enabled|staking|netstakeweight|expectedtime"; +;; + +setpassword ) + echo 'Set password for *UNENCRYPTED* wallet' + read -s BLKPW + $blkc encryptwallet $BLKPW + BLKPW=null +;; + +changepassword ) + echo 'Set new password, enter OLD password' + read -s BLKPWOLD + echo 'Set new password, enter NEW password' + read -s BLKPWNEW + $blkc walletpassphrasechange $BLKPWOLD $BLKPWNEW + BLKPWOLD=null + BLKPWNEW=null +;; + +stake ) + echo 'enter Blackcoin Password' + read -s BLKPW + $blkc walletpassphrase $BLKPW 99999999 true + BLKPW=null +;; + +latest ) + latest=$($blkc getblockcount) && \ + blacksight=$(curl -s https://node.blackcoin.io/insight-api/block-index/$latest? | cut -d '"' -f4) && \ + blackmore=$($blkc getblockhash $latest) && \ + diff -sy --label Local <(echo $blackmore) --label Explorer <(echo $blacksight) +;; + +dust ) + IFS=$'\n'; + + $blkc listtransactions "*" 99999 | jq -r '.[] | select(.category != "send") | select(.amount < .0001) | .txid' | uniq >txid.txt + + while read line; do + echo $line + $blkc removeprunedfunds $(echo $line) + done < "txid.txt" +;; + +past24 ) + latest=$($blkc getblockcount) + since=$(expr $latest - 1350) + hash=$($blkc getblockhash $since) + past24=$($blkc listsinceblock $hash | jq -r '.[] | .[] | select(.confirmations > 0) | select(.amount = 0) .confirmations' 2> /dev/null | wc -l) + + total=$($blkc getwalletinfo | jq -r ' .total_balance | round') + per10k=$(echo "scale=2; $past24/($total/10000)" | bc -l) + echo $past24 stakes over the past 24hrs... "$per10k" per 10k BLK... +;; + +*) + echo -e $usage +;; + +esac