github.com/status-im/status-go@v1.1.0/_assets/scripts/rpc.sh (about)

     1  #!/usr/bin/env bash
     2  set -euo pipefail
     3  
     4  RPC_HOST="${RPC_HOST:-localhost}"
     5  RPC_PORT="${RPC_PORT:-8545}"
     6  RPC_URL="${RPC_URL:-http://${RPC_HOST}:${RPC_PORT}/}"
     7  
     8  METHOD="$1"
     9  shift
    10  PARAMS=("$@")
    11  
    12  if [[ -z "${METHOD}" ]]; then
    13      echo "No method specified!" >&2
    14      exit 1
    15  fi
    16  # Parameter expansion trick to avoid var unbound error.
    17  if [[ -z "${PARAMS-}" ]]; then
    18      PARAMS_STR=''
    19  else
    20      PARAMS_STR=$(printf '%s\",\"' "${PARAMS[@]}")
    21      PARAMS_STR="\"${PARAMS_STR%%\",\"}\""
    22  fi
    23  
    24  PAYLOAD="{
    25    \"id\": 1,
    26    \"jsonrpc\": \"2.0\",
    27    \"method\": \"${METHOD}\",
    28    \"params\": [${PARAMS_STR}]
    29  }"
    30  
    31  OUT=$(
    32      curl --fail --show-error --silent \
    33          -H "Content-type:application/json" \
    34          -X POST --data "${PAYLOAD}" \
    35          "${RPC_URL}"
    36  )
    37  
    38  echo "${OUT}" | jq .