worm-fetch-governance 907 B

123456789101112131415161718192021222324252627282930
  1. #!/bin/bash
  2. usage="Usage:
  3. $(basename "$0") [sequence]
  4. Fetch a governance VAA by sequence number, and print it as hex."
  5. sequence=$1
  6. if [ -z "$sequence" ]; then
  7. echo "$usage"
  8. exit 1
  9. fi
  10. TMPDIR="$HOME/.wormhole"
  11. mkdir -p "$TMPDIR/vaa"
  12. cached="$TMPDIR/vaa/$sequence"
  13. # We cache the result once it's ready, so we don't keep making requests if the
  14. # VAA has already been pulled
  15. if [ ! -f "$cached" ]; then
  16. result=$(curl -s "https://wormhole-v2-mainnet-api.certus.one/v1/signed_vaa/1/0000000000000000000000000000000000000000000000000000000000000004/$sequence" | jq '.vaaBytes' -r)
  17. # The 'vaaBytes' field is set once quorum has been reached. Otherwise, 'jq'
  18. # returns "null", in which case we just exit 1
  19. if [ "$result" == "null" ]; then
  20. exit 1
  21. fi
  22. # vaaBytes is base64, we convert it to hex and write it to cache
  23. echo "$result" | base64 -d | hexdump -v -e '/1 "%02x" ' > "$cached"
  24. fi
  25. cat "$cached"