#! /bin/bash ##################### # counter over socket ##################### TESTNAME=$1 # Send some txs function sendTx() { TX=$1 RESPONSE=`curl -s localhost:46657/broadcast_tx_commit?tx=\"$TX\"` CODE=`echo $RESPONSE | jq .result[1].code` ERROR=`echo $RESPONSE | jq .error` ERROR=$(echo "$ERROR" | tr -d '"') # remove surrounding quotes } # 0 should pass once and get in block, with no error TX=00 sendTx $TX if [[ $CODE != 0 ]]; then echo "Got non-zero exit code for $TX. $RESPONSE" exit 1 fi if [[ "$ERROR" != "" ]]; then echo "Unexpected error. Tx $TX should have been included in a block. $ERROR" exit 1 fi # second time should get rejected by the mempool (return error and non-zero code) sendTx $TX if [[ $CODE == 0 ]]; then echo "Got zero exit code for $TX. Expected tx to be rejected by mempool. $RESPONSE" exit 1 fi if [[ "$ERROR" == "" ]]; then echo "Expected to get an error - tx $TX should have been rejected from mempool" echo "$RESPONSE" exit 1 fi # now, TX=01 should pass, with no error TX=01 sendTx $TX if [[ $CODE != 0 ]]; then echo "Got non-zero exit code for $TX. $RESPONSE" exit 1 fi if [[ "$ERROR" != "" ]]; then echo "Unexpected error. Tx $TX should have been accepted in block. $ERROR" exit 1 fi # now, TX=03 should get in a block (passes CheckTx, no error), but is invalid TX=03 sendTx $TX if [[ $CODE == 0 ]]; then echo "Got zero exit code for $TX. Should have been bad nonce. $RESPONSE" exit 1 fi if [[ "$ERROR" != "" ]]; then echo "Unexpected error. Tx $TX should have been included in a block. $ERROR" exit 1 fi echo "Passed Test: $TESTNAME"