Skip to content

Instantly share code, notes, and snippets.

@ralph-pichler
Last active December 22, 2022 06:39
Show Gist options
  • Select an option

  • Save ralph-pichler/3b5ccd7a5c5cd0500e6428752b37e975 to your computer and use it in GitHub Desktop.

Select an option

Save ralph-pichler/3b5ccd7a5c5cd0500e6428752b37e975 to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
[ -z ${DEBUG_API+x} ] && DEBUG_API=http://localhost:1635
[ -z ${MIN_AMOUNT+x} ] && MIN_AMOUNT=10000000000000000
# cashout script for bee >= 0.6.0
# note this is a simple bash script which might not work well or at all on some platforms
# for a more robust interface take a look at https://github.com/ethersphere/swarm-cli
function getPeers() {
curl -s "$DEBUG_API/chequebook/cheque" | jq -r '.lastcheques | .[].peer'
}
function getUncashedAmount() {
curl -s "$DEBUG_API/chequebook/cashout/$1" | jq '.uncashedAmount'
}
function cashout() {
local peer=$1
txHash=$(curl -s -XPOST "$DEBUG_API/chequebook/cashout/$peer" | jq -r .transactionHash)
echo cashing out cheque for $peer in transaction $txHash >&2
}
function cashoutAll() {
local minAmount=$1
for peer in $(getPeers)
do
local uncashedAmount=$(getUncashedAmount $peer)
if (( "$uncashedAmount" > $minAmount ))
then
echo "uncashed cheque for $peer ($uncashedAmount uncashed)" >&2
cashout $peer
fi
done
}
function listAllUncashed() {
for peer in $(getPeers)
do
local uncashedAmount=$(getUncashedAmount $peer)
if (( "$uncashedAmount" > 0 ))
then
echo $peer $uncashedAmount
fi
done
}
case $1 in
cashout)
cashout $2
;;
cashout-all)
cashoutAll $MIN_AMOUNT
;;
uncashed-for-peer)
getUncashedAmount $2
;;
list-uncashed|*)
listAllUncashed
;;
esac
@gumb0

gumb0 commented Apr 1, 2021

Copy link
Copy Markdown
[ -z ${MIN_AMOUNT+x} ] && MIN_AMOUNT=10000000000000000

This line doesn't work for me and always sets the default amount ignoring the command line

@oneoneplus

Copy link
Copy Markdown

What should users do under Windows 64?

@filwu8

filwu8 commented May 16, 2021

Copy link
Copy Markdown

jq: error: syntax error, unexpected ':', expecting $end (Windows cmd shell quoting issues?) at , line 1:
E:\SWARM\cashout.sh
jq: 1 compile error

@tomzhang

Copy link
Copy Markdown

this shell only work fine under linux env, and which can not list all uncashed bee directly (may need to make improment)

@2019jack

Copy link
Copy Markdown

@ralph-pichler ./cashout.sh
./cashout.sh: line 40: ((: "244000000000" > 0 : syntax error: operand expected (error token is ""244000000000" > 0 ")

this is wrong ?

@BitByteMaster

Copy link
Copy Markdown

After running this script, it returned me a txid which I couldn't find it from goerli explorer....looks like the transaction didn't really get broadcast to the network...which could go wrong here?

@liuweisir

Copy link
Copy Markdown

$ ./cashout.sh
./cashout.sh: line 40: ((: > 0 : syntax error: operand expected (error token is "> 0 ")
./cashout.sh: line 40: ((: > 0 : syntax error: operand expected (error token is "> 0 ")
./cashout.sh: line 40: ((: > 0 : syntax error: operand expected (error token is "> 0 ")
./cashout.sh: line 40: ((: > 0 : syntax error: operand expected (error token is "> 0 ")
./cashout.sh: line 40: ((: > 0 : syntax error: operand expected (error token is "> 0 ")
./cashout.sh: line 40: ((: > 0 : syntax error: operand expected (error token is "> 0 ")
./cashout.sh: line 40: ((: > 0 : syntax error: operand expected (error token is "> 0 ")
./cashout.sh: line 40: ((: > 0 : syntax error: operand expected (error token is "> 0 ")
./cashout.sh: line 40: ((: > 0 : syntax error: operand expected (error token is "> 0 ")
./cashout.sh: line 40: ((: > 0 : syntax error: operand expected (error token is "> 0 ")

@fab-io

fab-io commented Jun 25, 2021

Copy link
Copy Markdown

$ ./cashout.sh
./cashout.sh: line 40: ((: > 0 : syntax error: operand expected (error token is "> 0 ")
./cashout.sh: line 40: ((: > 0 : syntax error: operand expected (error token is "> 0 ")

I had the same error and fixed it changing line 14 to this

curl -s "$DEBUG_API/chequebook/cashout/$1" | jq 'if .uncashedAmount then (.uncashedAmount|tonumber) else -1 end'

@hugoQ1

hugoQ1 commented Jul 30, 2021

Copy link
Copy Markdown

can it work?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment