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 .