#! /bin/sh set -e if [ "$#" != 1 ] then echo Usage: "$0" "shortchannelid (e.g. 532046x1702x0 or 532046:1702:0)" >&2 echo Uses bitcoin-cli to extract the actual txid >&2 exit 1 fi # Try to segment using both x and : as delimiters (compatibility with the old shortchannelid standard) BLOCK=$(echo "$1" | cut -dx -f1) TXNUM=$(echo "$1" | cut -dx -f2) if [ "$BLOCK" = "$1" ] && [ "$TXNUM" = "$1" ] then BLOCK=$(echo "$1" | cut -d: -f1) TXNUM=$(echo "$1" | cut -d: -f2) fi if [ "$BLOCK" = "$1" ] && [ "$TXNUM" = "$1" ] then echo The provided shortchannelid is invalid. Valid examples: 532046x1702x0 or 532046:1702:0 >&2 exit 1 fi bitcoin-cli getblock "$(bitcoin-cli getblockhash "$BLOCK")" true | grep '^ "' | head -n "$((TXNUM + 1))" | tail -n 1 | tr -dc '0-9a-f\n'