31 lines
907 B
Bash
Executable File
31 lines
907 B
Bash
Executable File
#!/bin/bash
|
|
|
|
usage="Usage:
|
|
$(basename "$0") [sequence]
|
|
|
|
Fetch a governance VAA by sequence number, and print it as hex."
|
|
|
|
sequence=$1
|
|
if [ -z "$sequence" ]; then
|
|
echo "$usage"
|
|
exit 1
|
|
fi
|
|
TMPDIR="$HOME/.wormhole"
|
|
mkdir -p "$TMPDIR/vaa"
|
|
cached="$TMPDIR/vaa/$sequence"
|
|
|
|
# We cache the result once it's ready, so we don't keep making requests if the
|
|
# VAA has already been pulled
|
|
if [ ! -f "$cached" ]; then
|
|
result=$(curl -s "https://wormhole-v2-mainnet-api.certus.one/v1/signed_vaa/1/0000000000000000000000000000000000000000000000000000000000000004/$sequence" | jq '.vaaBytes' -r)
|
|
# The 'vaaBytes' field is set once quorum has been reached. Otherwise, 'jq'
|
|
# returns "null", in which case we just exit 1
|
|
if [ "$result" == "null" ]; then
|
|
exit 1
|
|
fi
|
|
# vaaBytes is base64, we convert it to hex and write it to cache
|
|
echo "$result" | base64 -d | hexdump -v -e '/1 "%02x" ' > "$cached"
|
|
fi
|
|
|
|
cat "$cached"
|