commit
6ca01e8f64
@ -0,0 +1,700 @@ |
||||
#!/bin/bash |
||||
# This Script is for Testing the API functionality on both local and betanet. |
||||
# -l to run localnet, -b to run betanet(mutually exclusive) |
||||
# -v to see returns from each request |
||||
# Right now only tests whether a response is recieved |
||||
# You must have properly cloned into the dapp-examples repo and have installed nodejs |
||||
VERBOSE="FALSE" |
||||
TESTS_RAN=0 |
||||
TESTS_PASSED=0 |
||||
|
||||
red=`tput setaf 1` |
||||
green=`tput setaf 2` |
||||
blue=`tput setaf 6` |
||||
white=`tput sgr0` |
||||
yellow=`tput setaf 11` |
||||
reset=`tput sgr0` |
||||
|
||||
function response_test() { |
||||
if [ "$1" != "" ]; then |
||||
echo "${green}RESPONSE RECIEVED${reset}" |
||||
return 1 |
||||
else |
||||
echo "${red}NO RESPONSE${reset}" |
||||
return 0 |
||||
fi |
||||
} |
||||
|
||||
function isHashTest() { |
||||
if [ "$TRANSACTION" != "null" ]; then |
||||
if [[ "$TRANSACTION_HASH" =~ ^0x[0-9a-f]{64}$ ]]; then |
||||
echo ${green}TRANSACTION HASH VALID${reset} |
||||
echo |
||||
return 1 |
||||
fi |
||||
fi |
||||
echo ${red}TRANSACTION HASH INVALID${reset} |
||||
return 0 |
||||
} |
||||
|
||||
function isHexTest() { |
||||
if [ "$1" != "null" ]; then |
||||
if [[ "$1" =~ ^0x[0-9a-f]+$ ]]; then |
||||
echo ${green}VALID HEX RECIEVED${reset} |
||||
echo |
||||
return 1 |
||||
fi |
||||
fi |
||||
echo ${red}INVALID HEX RECIEVED${reset} |
||||
return 0 |
||||
} |
||||
|
||||
### SETUP COMMANDLINE FLAGS ### |
||||
while getopts "lbvp" OPTION; do |
||||
case $OPTION in |
||||
b) |
||||
NETWORK="betanet" |
||||
declare -A PORT=( [POST]="http://s0.b.hmny.io:9500/" [GET]="http://e0.b.hmny.io:5000/" ) |
||||
BLOCK_0_HASH=$(curl --location --request POST "http://l0.b.hmny.io:9500" \ |
||||
--header "Content-Type: application/json" \ |
||||
--data "{\"jsonrpc\":\"2.0\",\"method\":\"hmy_getBlockByNumber\",\"params\":[\"0x1\", true],\"id\":1}" | jq -r '.result.hash') |
||||
echo "BLOCK0HASH:" |
||||
echo "$BLOCK_0_HASH" |
||||
|
||||
SIGNED_RAW_TRANSACTION=$(node ../dapp-examples/nodejs/apiTestSign.js) |
||||
echo "RAWTX" |
||||
echo "$SIGNED_RAW_TRANSACTION" |
||||
TRANSACTION_HASH=$(curl --location --request POST "http://l0.b.hmny.io:9500" \ |
||||
--header "Content-Type: application/json" \ |
||||
--data "{\"jsonrpc\":\"2.0\",\"method\":\"hmy_sendRawTransaction\",\"params\":[\""$SIGNED_RAW_TRANSACTION"\"],\"id\":1}" | jq -r '.result') |
||||
echo "TRANSACTION_HASH:" |
||||
echo $TRANSACTION_HASH |
||||
sleep 20s |
||||
TRANSACTION=$(curl --location --request POST "http://l0.b.hmny.io:9500" \ |
||||
--header "Content-Type: application/json" \ |
||||
--data "{\"jsonrpc\":\"2.0\",\"method\":\"hmy_getTransactionByHash\",\"params\":[\"$TRANSACTION_HASH\"],\"id\":1}") |
||||
|
||||
echo "TRANSACTION:" |
||||
echo "$TRANSACTION" |
||||
|
||||
TRANSACTION_BLOCK_HASH=$(echo $TRANSACTION | jq -r '.result.blockHash') |
||||
TRANSACTION_BLOCK_NUMBER=$(echo $TRANSACTION | jq -r '.result.blockNumber') |
||||
TRANSACTION_INDEX=$(echo $TRANSACTION | jq -r '.result.transactionIndex') #Needs to be get transaction Index |
||||
|
||||
|
||||
TRANSACTION_BLOCK_ID=$(( $TRANSACTION_BLOCK_NUMBER )) |
||||
echo TRANSACTION_BLOCK_ID |
||||
echo $TRANSACTION_BLOCK_ID |
||||
echo "TRANSACTION_BLOCK_HASH:" |
||||
echo $TRANSACTION_BLOCK_HASH |
||||
|
||||
echo "TRANSACTION_BLOCK_NUMBER:" |
||||
echo "$TRANSACTION_BLOCK_NUMBER" |
||||
|
||||
echo "TRANSACTION_INDEX:" |
||||
echo $TRANSACTION_INDEX |
||||
|
||||
;; |
||||
l) |
||||
NETWORK="localnet" |
||||
declare -A PORT=( [POST]="localhost:9500/" [GET]="localhost:5099/" ) |
||||
BLOCK_0_HASH=$(curl -s --location --request POST "localhost:9500" \ |
||||
--header "Content-Type: application/json" \ |
||||
--data "{\"jsonrpc\":\"2.0\",\"method\":\"hmy_getBlockByNumber\",\"params\":[\"0x1\", true],\"id\":1}" | jq -r '.result.hash') |
||||
|
||||
echo "BLOCK0HASH:" |
||||
echo "$BLOCK_0_HASH" |
||||
|
||||
SIGNED_RAW_TRANSACTION=$(node ../dapp-examples/nodejs/apiTestSign.js localnet) |
||||
echo "RAWTX" |
||||
echo "$SIGNED_RAW_TRANSACTION" |
||||
TRANSACTION_HASH=$(curl --location --request POST "localhost:9500" \ |
||||
--header "Content-Type: application/json" \ |
||||
--data "{\"jsonrpc\":\"2.0\",\"method\":\"hmy_sendRawTransaction\",\"params\":[\""$SIGNED_RAW_TRANSACTION"\"],\"id\":1}" | jq -r '.result') |
||||
echo "TRANSACTION_HASH:" |
||||
echo $TRANSACTION_HASH |
||||
sleep 20s |
||||
TRANSACTION=$(curl --location --request POST "http://localhost:9500" \ |
||||
--header "Content-Type: application/json" \ |
||||
--data "{\"jsonrpc\":\"2.0\",\"method\":\"hmy_getTransactionByHash\",\"params\":[\"$TRANSACTION_HASH\"],\"id\":1}") |
||||
|
||||
echo "TRANSACTION:" |
||||
echo "$TRANSACTION" |
||||
|
||||
TRANSACTION_BLOCK_HASH=$(echo $TRANSACTION | jq -r '.result.blockHash') |
||||
TRANSACTION_BLOCK_NUMBER=$(echo $TRANSACTION | jq -r '.result.blockNumber') |
||||
TRANSACTION_INDEX=$(echo $TRANSACTION | jq -r '.result.transactionIndex') |
||||
|
||||
TRANSACTION_BLOCK_ID=$(( $TRANSACTION_BLOCK_NUMBER )) |
||||
echo TRANSACTION_BLOCK_ID |
||||
echo $TRANSACTION_BLOCK_ID |
||||
echo "TRANSACTION_BLOCK_HASH:" |
||||
echo $TRANSACTION_BLOCK_HASH |
||||
|
||||
echo "TRANSACTION_BLOCK_NUMBER:" |
||||
echo "$TRANSACTION_BLOCK_NUMBER" |
||||
|
||||
echo "TRANSACTION_INDEX:" |
||||
echo $TRANSACTION_INDEX |
||||
;; |
||||
v) |
||||
VERBOSE="TRUE" |
||||
;; |
||||
p) |
||||
PRETTY="TRUE" |
||||
;; |
||||
esac |
||||
done |
||||
|
||||
if [ $OPTIND -eq 1 ]; then echo "No options were passed, -l for localnet, -b for betanet, -v to view logs of either"; exit; fi |
||||
|
||||
declare -A GETDATA=( [GET_blocks]="blocks?from=$TRANSACTION_BLOCK_ID&to=$TRANSACTION_BLOCK_ID" [GET_tx]="tx?id=0" [GET_address]="address?id=0" [GET_node-count]="node-count" [GET_shard]="shard?id=0" [GET_committee]="committee?shard_id=0&epoch=0" ) |
||||
declare -A POSTDATA |
||||
|
||||
if [ "$NETWORK" == "localnet" ]; then |
||||
POSTDATA[hmy_getBlockByHash]="hmy_getBlockByHash\",\"params\":[\"$TRANSACTION_BLOCK_HASH\", true]" |
||||
POSTDATA[hmy_getBlockByNumber]="hmy_getBlockByNumber\",\"params\":[\"$TRANSACTION_BLOCK_NUMBER\", true]" |
||||
POSTDATA[hmy_getBlockTransactionCountByHash]="hmy_getBlockTransactionCountByHash\",\"params\":[\"$TRANSACTION_BLOCK_HASH\"]" |
||||
POSTDATA[hmy_getBlockTransactionCountByNumber]="hmy_getBlockTransactionCountByNumber\",\"params\":[\"$TRANSACTION_BLOCK_NUMBER\"]" |
||||
POSTDATA[hmy_getCode]="hmy_getCode\",\"params\":[\"0x08AE1abFE01aEA60a47663bCe0794eCCD5763c19\", \"latest\"]" |
||||
POSTDATA[hmy_getTransactionByBlockHashAndIndex]="hmy_getTransactionByBlockHashAndIndex\",\"params\":[\"$TRANSACTION_BLOCK_HASH\", \"$TRANSACTION_INDEX\"]" |
||||
POSTDATA[hmy_getTransactionByBlockNumberAndIndex]="hmy_getTransactionByBlockNumberAndIndex\",\"params\":[\"$TRANSACTION_BLOCK_NUMBER\", \"$TRANSACTION_INDEX\"]" |
||||
POSTDATA[hmy_getTransactionByHash]="hmy_getTransactionByHash\",\"params\":[\"$TRANSACTION_HASH\"]" |
||||
POSTDATA[hmy_getTransactionReceipt]="hmy_getTransactionReceipt\",\"params\":[\"$TRANSACTION_HASH\"]" |
||||
POSTDATA[hmy_syncing]="hmy_syncing\",\"params\":[]" |
||||
POSTDATA[net_peerCount]="net_peerCount\",\"params\":[]" |
||||
POSTDATA[hmy_getBalance]="hmy_getBalance\",\"params\":[\"one18t4yj4fuutj83uwqckkvxp9gfa0568uc48ggj7\", \"latest\"]" |
||||
POSTDATA[hmy_getStorageAt]="hmy_getStorageAt\",\"params\":[\"0xD7Ff41CA29306122185A07d04293DdB35F24Cf2d\", \"0\", \"latest\"]" |
||||
POSTDATA[hmy_getTransactionCount]="hmy_getTransactionCount\",\"params\":[\"0x806171f95C5a74371a19e8a312c9e5Cb4E1D24f6\", \"latest\"]" # what is this |
||||
POSTDATA[hmy_sendRawTransaction]="hmy_sendRawTransaction\",\"params\":[\"$SIGNED_RAW_TRANSACTION\"]" |
||||
POSTDATA[hmy_getLogs]="hmy_getLogs\", \"params\":[{\"BlockHash\": \"$TRANSACTION_BLOCK_HASH\"}]" |
||||
POSTDATA[hmy_getFilterChanges]="hmy_getFilterChanges\", \"params\":[\"0x58010795a282878ed0d61da72a14b8b0\"]" |
||||
POSTDATA[hmy_newPendingTransactionFilter]="hmy_newPendingTransactionFilter\", \"params\":[]" |
||||
POSTDATA[hmy_newBlockFilter]="hmy_newBlockFilter\", \"params\":[]" |
||||
POSTDATA[hmy_newFilter]="hmy_newFilter\", \"params\":[{\"BlockHash\": \"0x5725b5b2ab28206e7256a78cda4f9050c2629fd85110ffa54eacd2a13ba68072\"}]" |
||||
POSTDATA[hmy_call]="hmy_call\", \"params\":[{\"to\": \"0x08AE1abFE01aEA60a47663bCe0794eCCD5763c19\"}, \"latest\"]" |
||||
POSTDATA[hmy_gasPrice]="hmy_gasPrice\",\"params\":[]" |
||||
POSTDATA[hmy_blockNumber]="hmy_blockNumber\",\"params\":[]" |
||||
POSTDATA[net_version]="net_version\",\"params\":[]" |
||||
POSTDATA[hmy_protocolVersion]="hmy_protocolVersion\",\"params\":[]" |
||||
fi |
||||
|
||||
if [ "$NETWORK" == "betanet" ]; then |
||||
POSTDATA[hmy_getBlockByHash]="hmy_getBlockByHash\",\"params\":[\"$TRANSACTION_BLOCK_HASH\", true]" |
||||
POSTDATA[hmy_getBlockByNumber]="hmy_getBlockByNumber\",\"params\":[\"$TRANSACTION_BLOCK_NUMBER\", true]" |
||||
POSTDATA[hmy_getBlockTransactionCountByHash]="hmy_getBlockTransactionCountByHash\",\"params\":[\"$TRANSACTION_BLOCK_HASH\"]" |
||||
POSTDATA[hmy_getBlockTransactionCountByNumber]="hmy_getBlockTransactionCountByNumber\",\"params\":[\"$TRANSACTION_BLOCK_NUMBER\"]" |
||||
POSTDATA[hmy_getCode]="hmy_getCode\",\"params\":[\"0x08AE1abFE01aEA60a47663bCe0794eCCD5763c19\", \"latest\"]" |
||||
POSTDATA[hmy_getTransactionByBlockHashAndIndex]="hmy_getTransactionByBlockHashAndIndex\",\"params\":[\"$TRANSACTION_BLOCK_HASH\", \"$TRANSACTION_INDEX\"]" |
||||
POSTDATA[hmy_getTransactionByBlockNumberAndIndex]="hmy_getTransactionByBlockNumberAndIndex\",\"params\":[\"$TRANSACTION_BLOCK_NUMBER\", \"$TRANSACTION_INDEX\"]" |
||||
POSTDATA[hmy_getTransactionByHash]="hmy_getTransactionByHash\",\"params\":[\"$TRANSACTION_HASH\"]" |
||||
POSTDATA[hmy_getTransactionReceipt]="hmy_getTransactionReceipt\",\"params\":[\"$TRANSACTION_HASH\"]" |
||||
POSTDATA[hmy_syncing]="hmy_syncing\",\"params\":[]" |
||||
POSTDATA[net_peerCount]="net_peerCount\",\"params\":[]" |
||||
POSTDATA[hmy_getBalance]="hmy_getBalance\",\"params\":[\"one18t4yj4fuutj83uwqckkvxp9gfa0568uc48ggj7\", \"latest\"]" |
||||
POSTDATA[hmy_getStorageAt]="hmy_getStorageAt\",\"params\":[\"0xD7Ff41CA29306122185A07d04293DdB35F24Cf2d\", \"0\", \"latest\"]" |
||||
POSTDATA[hmy_getTransactionCount]="hmy_getTransactionCount\",\"params\":[\"0x806171f95C5a74371a19e8a312c9e5Cb4E1D24f6\", \"latest\"]" # what is this |
||||
POSTDATA[hmy_sendRawTransaction]="hmy_sendRawTransaction\",\"params\":[\"$SIGNED_RAW_TRANSACTION\"]" |
||||
POSTDATA[hmy_getLogs]="hmy_getLogs\", \"params\":[{\"BlockHash\": \"$TRANSACTION_BLOCK_HASH\"}]" |
||||
POSTDATA[hmy_getFilterChanges]="hmy_getFilterChanges\", \"params\":[\"0x58010795a282878ed0d61da72a14b8b0\"]" |
||||
POSTDATA[hmy_newPendingTransactionFilter]="hmy_newPendingTransactionFilter\", \"params\":[]" |
||||
POSTDATA[hmy_newBlockFilter]="hmy_newBlockFilter\", \"params\":[]" |
||||
POSTDATA[hmy_newFilter]="hmy_newFilter\", \"params\":[{\"BlockHash\": \"0x5725b5b2ab28206e7256a78cda4f9050c2629fd85110ffa54eacd2a13ba68072\"}]" |
||||
POSTDATA[hmy_call]="hmy_call\", \"params\":[{\"to\": \"0x08AE1abFE01aEA60a47663bCe0794eCCD5763c19\"}, \"latest\"]" |
||||
POSTDATA[hmy_gasPrice]="hmy_gasPrice\",\"params\":[]" |
||||
POSTDATA[hmy_blockNumber]="hmy_blockNumber\",\"params\":[]" |
||||
POSTDATA[net_version]="net_version\",\"params\":[]" |
||||
POSTDATA[hmy_protocolVersion]="hmy_protocolVersion\",\"params\":[]" |
||||
fi |
||||
|
||||
declare -A RESPONSES |
||||
|
||||
RESPONSES[GET_blocks]="" |
||||
RESPONSES[GET_tx]="" |
||||
RESPONSES[GET_address]="" |
||||
RESPONSES[GET_node-count]="" |
||||
RESPONSES[GET_shard]="" |
||||
RESPONSES[GET_committee]="" |
||||
RESPONSES[hmy_getBlockByHash]="" |
||||
RESPONSES[hmy_getBlockByNumber]="" |
||||
RESPONSES[hmy_getBlockTransactionCountByHash]="" |
||||
RESPONSES[hmy_getBlockTransactionCountByNumber]="" |
||||
RESPONSES[hmy_getCode]="" |
||||
RESPONSES[hmy_getTransactionByBlockHashAndIndex]="" |
||||
RESPONSES[hmy_getTransactionByBlockNumberAndIndex]="" |
||||
RESPONSES[hmy_getTransactionByHash]="" |
||||
RESPONSES[hmy_getTransactionReceipt]="" |
||||
RESPONSES[hmy_syncing]="" |
||||
RESPONSES[net_peerCount]="" |
||||
RESPONSES[hmy_getBalance]="" |
||||
RESPONSES[hmy_getStorageAt]="" |
||||
RESPONSES[hmy_getTransactionCount]="" |
||||
RESPONSES[hmy_sendRawTransaction]="" |
||||
RESPONSES[hmy_getLogs]="" |
||||
RESPONSES[hmy_getFilterChanges]="" |
||||
RESPONSES[hmy_newPendingTransactionFilter]="" |
||||
RESPONSES[hmy_newBlockFilter]="" |
||||
RESPONSES[hmy_newFilter]="" |
||||
RESPONSES[hmy_call]="" |
||||
RESPONSES[hmy_gasPrice]="" |
||||
RESPONSES[hmy_blockNumber]="" |
||||
RESPONSES[net_version]="" |
||||
RESPONSES[hmy_protocolVersion]="" |
||||
|
||||
### Processes GET requests and stores reponses in RESPONSES ### |
||||
function GET_requests() { |
||||
for K in "${!GETDATA[@]}"; |
||||
do |
||||
RESPONSES[$K]=$(curl -s --location --request GET "${PORT[GET]}${GETDATA[$K]}" \ |
||||
--header "Content-Type: application/json" \ |
||||
--data "") |
||||
done |
||||
} |
||||
|
||||
### Processes POST requests and stores reponses in RESPONSES ### |
||||
function POST_requests() { |
||||
for K in "${!POSTDATA[@]}"; |
||||
do |
||||
RESPONSES[$K]="$(curl -s --location --request POST "${PORT[POST]}" \ |
||||
--header "Content-Type: application/json" \ |
||||
--data "{\"jsonrpc\":\"2.0\",\"method\":\"${POSTDATA[$K]},\"id\":1}")" |
||||
done |
||||
} |
||||
|
||||
function log_API_responses() { |
||||
for K in "${!GETDATA[@]}"; |
||||
do |
||||
echo "${yellow}$K" |
||||
echo "${blue}REQUEST:" |
||||
echo "${white}${GETDATA[$K]}" |
||||
echo "${blue}RESPONSE:" ${white} |
||||
echo ${RESPONSES[$K]} #| jq . |
||||
echo |
||||
echo |
||||
done |
||||
for K in "${!POSTDATA[@]}"; |
||||
do |
||||
echo "${yellow}$K" |
||||
echo "${blue}REQUEST:" |
||||
echo "${white}${POSTDATA[$K]}" |
||||
echo "${blue}RESPONSE: $white" |
||||
echo ${RESPONSES[$K]} #| jq . |
||||
echo |
||||
echo |
||||
done |
||||
} |
||||
|
||||
GET_requests |
||||
POST_requests |
||||
### BASIC QUERY TESTS ### |
||||
|
||||
function Explorer_getBlock_test() { |
||||
TESTS_RAN=$(( TESTS_RAN + 1 )) |
||||
echo "GET blocks(explorer) test:" |
||||
response_test ${RESPONSES[GET_blocks]} |
||||
if [ "$?" == "1" ]; then |
||||
BLOCKBYIDHASH=$(echo ${RESPONSES[GET_blocks]} | jq -r .[0].id) |
||||
if [ "$BLOCKBYIDHASH" != "null" ]; then |
||||
if [ "$BLOCKBYIDHASH" == "$TRANSACTION_BLOCK_HASH" ]; then |
||||
TESTS_PASSED=$(( TESTS_PASSED + 1 )) |
||||
echo ${green}BLOCK HASH MATCHES TX${reset} |
||||
echo |
||||
return |
||||
fi |
||||
fi |
||||
echo ${red}BLOCK HASH DOES NOT MATCH TX OR IS NULL${reset} |
||||
fi |
||||
echo |
||||
} |
||||
|
||||
#Needs updating - wtf does getTx do - no arguments? |
||||
function Explorer_getTx_test() { |
||||
TESTS_RAN=$(( TESTS_RAN + 1 )) |
||||
echo "GET tx(explorer) test:" |
||||
response_test ${RESPONSES[GET_tx]} |
||||
if [ "$?" == "1" ]; then |
||||
TX_HASH=$(echo ${RESPONSES[GET_tx]} | jq -r .id) # fix agrs to jq |
||||
if [ "$TX_HASH" != "null" ]; then |
||||
if [ "$TX_HASH" == "$TX_HASH" ]; then |
||||
TESTS_PASSED=$(( TESTS_PASSED + 1 )) |
||||
echo ${green}BLOCK HASH MATCHES TX${reset} |
||||
echo |
||||
return |
||||
fi |
||||
fi |
||||
echo ${red}BLOCK HASH DOES NOT MATCH TX OR IS NULL${reset} |
||||
fi |
||||
echo |
||||
} |
||||
|
||||
function Explorer_getExplorerNodeAdress_test() { |
||||
TESTS_RAN=$(( TESTS_RAN + 1 )) |
||||
echo "GET address(explorer) test:" |
||||
response_test ${RESPONSES[GET_address]} |
||||
[ "$?" == "1" ] && TESTS_PASSED=$(( TESTS_PASSED + 1 )) |
||||
echo |
||||
} |
||||
|
||||
function Explorer_getExplorerNode_test() { |
||||
TESTS_RAN=$(( TESTS_RAN + 1 )) |
||||
echo "GET node-count(explorer) test:" |
||||
response_test ${RESPONSES[GET_node-count]} |
||||
if [ ${RESPONSES[GET_node-count]}="2" ]; then |
||||
echo ${green}SANE VALUE, 2 explorer nodes reported $reset |
||||
TESTS_PASSED=$(( TESTS_PASSED + 1 )) |
||||
else |
||||
echo ${red}non 2 explorer nodes reported $reset |
||||
fi |
||||
echo |
||||
} |
||||
|
||||
function Explorer_getShard_test() { |
||||
TESTS_RAN=$(( TESTS_RAN + 1 )) |
||||
echo "GET shard(explorer) test:" |
||||
response_test ${RESPONSES[GET_shard]} |
||||
[ "$?" == "1" ] && TESTS_PASSED=$(( TESTS_PASSED + 1 )) |
||||
echo |
||||
} |
||||
|
||||
function Explorer_getCommitte_test() { |
||||
TESTS_RAN=$(( TESTS_RAN + 1 )) |
||||
echo "GET committe(explorer) test:" |
||||
response_test ${RESPONSES[GET_committee]} |
||||
[ "$?" == "1" ] && TESTS_PASSED=$(( TESTS_PASSED + 1 )) |
||||
echo |
||||
} |
||||
|
||||
### API POST REQUESTS ### |
||||
|
||||
function API_getBlockByNumber_test() { |
||||
TESTS_RAN=$(( TESTS_RAN + 1 )) |
||||
echo "POST hmy_getBlockByNumber test:" |
||||
response_test ${RESPONSES[hmy_getBlockByNumber]} |
||||
BLOCKBYNUMBERHASH=$(echo ${RESPONSES[hmy_getBlockByNumber]} | jq -r '.result.hash') |
||||
|
||||
if [ "$BLOCKBLOCKBYNUMBERHASH" != "null" ]; then |
||||
if [ "$BLOCKBYNUMBERHASH" == "$TRANSACTION_BLOCK_HASH" ]; then |
||||
TESTS_PASSED=$(( TESTS_PASSED + 1 )) |
||||
echo ${green}BLOCK HASH MATCHES TX${reset} |
||||
echo |
||||
return |
||||
fi |
||||
fi |
||||
echo ${red}BLOCK HASH DOES NOT MATCH TX OR IS NULL${reset} |
||||
echo |
||||
} |
||||
|
||||
function API_getBlockByHash_test() { |
||||
TESTS_RAN=$(( TESTS_RAN + 1 )) |
||||
echo "POST hmy_getBlockByHash test:" |
||||
response_test ${RESPONSES[hmy_getBlockByHash]} |
||||
BLOCKBYHASHHASH=$(echo ${RESPONSES[hmy_getBlockByHash]} | jq -r '.result.hash') |
||||
if [ "$BLOCKBYHASHBYHASH" != "null" ]; then |
||||
if [ "$BLOCKBYHASHHASH" == "$TRANSACTION_BLOCK_HASH" ]; then |
||||
TESTS_PASSED=$(( TESTS_PASSED + 1 )) |
||||
echo ${green}BLOCK HASH MATCHES TX${reset} |
||||
echo |
||||
return |
||||
fi |
||||
fi |
||||
echo ${red}BLOCK HASH DOES NOT MATCH TX OR IS NULL${reset} |
||||
echo |
||||
} |
||||
|
||||
function API_getBlockTransactionCountByHash_test() { |
||||
TESTS_RAN=$(( TESTS_RAN + 1 )) |
||||
echo "POST hmy_getBlockTransactionCountByHash test:" |
||||
response_test ${RESPONSES[hmy_getBlockTransactionCountByHash]} |
||||
TRANSACTIONCOUNTBYHASH=$(echo ${RESPONSES[hmy_getBlockTransactionCountByHash]} | jq -r '.result') |
||||
TRANSACTIONCOUNTBYHASH=$(( TRANSACTIONCOUNTBYHASH )) |
||||
if [ "$TRANSACTIONCOUNTBYHASH" != "null" ]; then |
||||
if [ $TRANSACTIONCOUNTBYHASH -gt 0 ]; then |
||||
TESTS_PASSED=$(( TESTS_PASSED + 1 )) |
||||
echo ${green}NON ZERO TRANSACTION COUNT IN BLOCK${reset} |
||||
echo |
||||
return |
||||
fi |
||||
fi |
||||
echo ${red}INVALID TRANSACTION COUNT IN BLOCK${reset} |
||||
echo |
||||
} |
||||
|
||||
function API_getBlockTransactionCountByNumber_test() { |
||||
TESTS_RAN=$(( TESTS_RAN + 1 )) |
||||
echo "POST hmy_getBlockTransactionCountByNumber test:" |
||||
response_test ${RESPONSES[hmy_getBlockTransactionCountByNumber]} |
||||
TRANSACTIONCOUNTBYNUMBER=$(echo ${RESPONSES[hmy_getBlockTransactionCountByNumber]} | jq -r '.result') |
||||
TRANSACTIONCOUNTBYNUMBER=$(( TRANSACTIONCOUNTBYNUMBER )) |
||||
if [ "$BLOCKBYHASH" != "null" ]; then |
||||
if [ $TRANSACTIONCOUNTBYNUMBER -gt 0 ]; then |
||||
TESTS_PASSED=$(( TESTS_PASSED + 1 )) |
||||
echo ${green}NON ZERO TRANSACTION COUNT IN BLOCK${reset} |
||||
echo |
||||
return |
||||
fi |
||||
fi |
||||
echo ${red}NON NATURAL TRANSACTION COUNT IN BLOCK${reset} |
||||
echo |
||||
} |
||||
|
||||
function API_getCode_test() { |
||||
TESTS_RAN=$(( TESTS_RAN + 1 )) |
||||
echo "POST hmy_getCode test:" |
||||
response_test ${RESPONSES[hmy_getCode]} |
||||
[ "$?" == "1" ] && TESTS_PASSED=$(( TESTS_PASSED + 1 )) |
||||
echo |
||||
} |
||||
|
||||
function API_getTransactionByBlockHashAndIndex_test() { |
||||
TESTS_RAN=$(( TESTS_RAN + 1 )) |
||||
echo "POST hmy_getTransactionByBlockHashAndIndex test:" |
||||
response_test ${RESPONSES[hmy_getTransactionByBlockHashAndIndex]} |
||||
TRANSACTIONHASHBYHASHANDINDEX=$(echo ${RESPONSES[hmy_getTransactionByBlockHashAndIndex]} | jq -r '.result.hash') |
||||
if [ "$TRANSACTIONHASHBYHASHANDINDEX" != "null" ]; then |
||||
if [ "$TRANSACTIONHASHBYHASHANDINDEX" == "$TRANSACTION_HASH" ]; then |
||||
TESTS_PASSED=$(( TESTS_PASSED + 1 )) |
||||
echo ${green}TRANSACTION FROM BLOCKHASH AND INDEX MATCH${reset} |
||||
echo |
||||
return |
||||
fi |
||||
fi |
||||
echo ${red} TRANSACTION FROM BLOCKHASH AND INDEX MATCH${reset} |
||||
echo |
||||
} |
||||
|
||||
function API_getTransactionByBlockNumberAndIndex_test() { |
||||
TESTS_RAN=$(( TESTS_RAN + 1 )) |
||||
echo "POST hmy_getTransactionByBlockNumberAndIndex test:" |
||||
response_test ${RESPONSES[hmy_getTransactionByBlockNumberAndIndex]} |
||||
TRANSACTIONHASHBYNUMBERANDINDEX=$(echo ${RESPONSES[hmy_getTransactionByBlockNumberAndIndex]} | jq -r '.result.hash') |
||||
if [ "$TRANSACTIONHASHBYNUMBERANDINDEX" != "null" ]; then |
||||
if [ "$TRANSACTIONHASHBYNUMBERANDINDEX" == "$TRANSACTION_HASH" ]; then |
||||
TESTS_PASSED=$(( TESTS_PASSED + 1 )) |
||||
echo ${green}TRANSACTION FROM BLOCKNUMBER AND INDEX MATCH${reset} |
||||
echo |
||||
return |
||||
fi |
||||
fi |
||||
echo ${red} TRANSACTION FROM BLOCKNUMBER AND INDEX MISMATCH${reset} |
||||
echo |
||||
} |
||||
|
||||
function API_getTransactionByHash_test() { |
||||
TESTS_RAN=$(( TESTS_RAN + 1 )) |
||||
echo "POST hmy_getTransactionByHash test:" |
||||
TX_HASH=$(echo ${RESPONSES[hmy_getTransactionByHash]} | jq -r '.result.hash') |
||||
response_test ${RESPONSES[hmy_getTransactionByHash]} |
||||
if [ "$TX_HASH" != "null" ]; then |
||||
if [ "$TX_HASH" == "$TRANSACTION_HASH" ]; then |
||||
TESTS_PASSED=$(( TESTS_PASSED + 1 )) |
||||
echo ${green}TRANSACTION HASH MATCH${reset} |
||||
echo |
||||
return |
||||
fi |
||||
fi |
||||
echo ${red} TRANSACTION HASH MISMATCH${reset} |
||||
echo |
||||
} |
||||
|
||||
function API_getTransactionReceipt_test() { |
||||
TESTS_RAN=$(( TESTS_RAN + 1 )) |
||||
echo "POST hmy_getTransactionReceipt test:" |
||||
TX_HASH=$(echo ${RESPONSES[hmy_getTransactionReceipt]} | jq -r '.result.transactionHash') |
||||
response_test ${RESPONSES[hmy_getTransactionReceipt]} |
||||
if [ "$TX_HASH" != "null" ]; then |
||||
if [ "$TX_HASH" == "$TRANSACTION_HASH" ]; then |
||||
TESTS_PASSED=$(( TESTS_PASSED + 1 )) |
||||
echo ${green}TRANSACTION HASH MATCH${reset} |
||||
echo |
||||
return |
||||
fi |
||||
fi |
||||
echo ${red} TRANSACTION HASH MISMATCH${reset} |
||||
echo |
||||
} |
||||
|
||||
function API_syncing_test() { |
||||
TESTS_RAN=$(( TESTS_RAN + 1 )) |
||||
echo "POST hmy_syncing test:" |
||||
response_test ${RESPONSES[hmy_syncing]} |
||||
[ "$?" == "1" ] && TESTS_PASSED=$(( TESTS_PASSED + 1 )) |
||||
echo |
||||
} |
||||
|
||||
function API_netPeerCount_test() { |
||||
TESTS_RAN=$(( TESTS_RAN + 1 )) |
||||
echo "POST net_peerCount test:" |
||||
response_test ${RESPONSES[net_peerCount]} |
||||
[ "$?" == "1" ] && TESTS_PASSED=$(( TESTS_PASSED + 1 )) |
||||
echo |
||||
} |
||||
|
||||
function API_getBalance_test() { |
||||
TESTS_RAN=$(( TESTS_RAN + 1 )) |
||||
echo "POST hmy_getBalance test:" |
||||
response_test ${RESPONSES[hmy_getBalance]} |
||||
[ "$?" == "1" ] && TESTS_PASSED=$(( TESTS_PASSED + 1 )) |
||||
echo |
||||
} |
||||
|
||||
function API_getStorageAt_test() { |
||||
TESTS_RAN=$(( TESTS_RAN + 1 )) |
||||
echo "POST hmy_getStorageAt test:" |
||||
response_test ${RESPONSES[hmy_getStorageAt]} |
||||
[ "$?" == "1" ] && TESTS_PASSED=$(( TESTS_PASSED + 1 )) |
||||
echo |
||||
} |
||||
|
||||
function API_getTransactionCount_test() { |
||||
TESTS_RAN=$(( TESTS_RAN + 1 )) |
||||
echo "POST hmy_getTransactionCount test:" |
||||
response_test ${RESPONSES[hmy_getTransactionCount]} |
||||
[ "$?" == "1" ] && TESTS_PASSED=$(( TESTS_PASSED + 1 )) |
||||
echo |
||||
} |
||||
|
||||
function API_sendRawTransaction_test() { |
||||
TESTS_RAN=$(( TESTS_RAN + 1 )) |
||||
echo "POST hmy_sendRawTransaction test:" |
||||
response_test ${RESPONSES[hmy_sendRawTransaction]} |
||||
[ "$?" == "1" ] && TESTS_PASSED=$(( TESTS_PASSED + 1 )) |
||||
echo |
||||
} |
||||
|
||||
function API_getLogs_test() { |
||||
TESTS_RAN=$(( TESTS_RAN + 1 )) |
||||
echo "POST hmy_getLogs test:" |
||||
response_test ${RESPONSES[hmy_getLogs]} |
||||
[ "$?" == "1" ] && TESTS_PASSED=$(( TESTS_PASSED + 1 )) |
||||
echo |
||||
} |
||||
|
||||
function API_getFilterChanges_test() { |
||||
TESTS_RAN=$(( TESTS_RAN + 1 )) |
||||
echo "POST hmy_getFilterChanges test:" |
||||
response_test ${RESPONSES[hmy_getFilterChanges]} |
||||
[ "$?" == "1" ] && TESTS_PASSED=$(( TESTS_PASSED + 1 )) |
||||
echo |
||||
} |
||||
|
||||
function API_newPendingTransactionFilter_test() { |
||||
TESTS_RAN=$(( TESTS_RAN + 1 )) |
||||
echo "POST hmy_sendRawTransaction test:" |
||||
response_test ${RESPONSES[hmy_newPendingTransactionFilter]} |
||||
[ "$?" == "1" ] && TESTS_PASSED=$(( TESTS_PASSED + 1 )) |
||||
echo |
||||
} |
||||
|
||||
function API_newBlockFilter_test() { |
||||
TESTS_RAN=$(( TESTS_RAN + 1 )) |
||||
echo "POST hmy_newBlockFilter test:" |
||||
response_test ${RESPONSES[hmy_newBlockFilter]} |
||||
[ "$?" == "1" ] && TESTS_PASSED=$(( TESTS_PASSED + 1 )) |
||||
echo |
||||
} |
||||
|
||||
function API_newFilter_test() { |
||||
TESTS_RAN=$(( TESTS_RAN + 1 )) |
||||
echo "POST hmy_newFilter test:" |
||||
response_test ${RESPONSES[hmy_newFilter]} |
||||
[ "$?" == "1" ] && TESTS_PASSED=$(( TESTS_PASSED + 1 )) |
||||
echo |
||||
} |
||||
|
||||
function API_call_test() { |
||||
TESTS_RAN=$(( TESTS_RAN + 1 )) |
||||
echo "POST hmy_call test:" |
||||
response_test ${RESPONSES[hmy_call]} |
||||
[ "$?" == "1" ] && TESTS_PASSED=$(( TESTS_PASSED + 1 )) |
||||
echo |
||||
} |
||||
|
||||
function API_gasPrice_test() { |
||||
TESTS_RAN=$(( TESTS_RAN + 1 )) |
||||
echo "POST hmy_gasPrice test:" |
||||
response_test ${RESPONSES[hmy_gasPrice]} |
||||
if [ "$?" == "1" ]; then |
||||
RESULT=$(echo ${RESPONSES[hmy_gasPrice]} | jq -r '.result') |
||||
isHexTest $RESULT |
||||
[ "$?" == "1" ] && TESTS_PASSED=$(( TESTS_PASSED + 1 )) |
||||
fi |
||||
} |
||||
|
||||
function API_blockNumber_test() { |
||||
TESTS_RAN=$(( TESTS_RAN + 1 )) |
||||
echo "POST hmy_blockNumber test:" |
||||
response_test ${RESPONSES[hmy_blockNumber]} |
||||
if [ "$?" == "1" ]; then |
||||
RESULT=$(echo ${RESPONSES[hmy_blockNumber]} | jq -r '.result') |
||||
isHexTest $RESULT |
||||
[ "$?" == "1" ] && TESTS_PASSED=$(( TESTS_PASSED + 1 )) |
||||
fi |
||||
} |
||||
|
||||
function API_net_version_test() { |
||||
TESTS_RAN=$(( TESTS_RAN + 1 )) |
||||
echo "POST net_version test:" |
||||
response_test ${RESPONSES[net_version]} |
||||
[ "$?" == "1" ] && TESTS_PASSED=$(( TESTS_PASSED + 1 )) |
||||
echo |
||||
} |
||||
|
||||
function API_protocolVersion_test() { |
||||
TESTS_RAN=$(( TESTS_RAN + 1 )) |
||||
echo "POST hmy_protocolVersion test:" |
||||
response_test ${RESPONSES[hmy_protocolVersion]} |
||||
[ "$?" == "1" ] && TESTS_PASSED=$(( TESTS_PASSED + 1 )) |
||||
echo |
||||
} |
||||
|
||||
function run_tests() { |
||||
echo "### TESTING RPC CALLS ###" |
||||
echo |
||||
### Calls to the individual API method test ### |
||||
Explorer_getBlock_test |
||||
Explorer_getTx_test |
||||
Explorer_getExplorerNodeAdress_test |
||||
Explorer_getExplorerNode_test |
||||
Explorer_getShard_test |
||||
Explorer_getCommitte_test |
||||
API_getBlockByNumber_test |
||||
API_getBlockByHash_test |
||||
API_getBlockTransactionCountByHash_test |
||||
API_getBlockTransactionCountByNumber_test |
||||
API_getCode_test |
||||
API_getTransactionByBlockHashAndIndex_test |
||||
API_getTransactionByBlockNumberAndIndex_test |
||||
API_getTransactionByHash_test |
||||
API_getTransactionReceipt_test |
||||
API_syncing_test |
||||
API_netPeerCount_test |
||||
API_getBalance_test |
||||
API_getStorageAt_test |
||||
API_getTransactionCount_test |
||||
API_sendRawTransaction_test |
||||
API_getLogs_test |
||||
API_getFilterChanges_test |
||||
API_newPendingTransactionFilter_test |
||||
API_sendRawTransaction_test |
||||
API_newBlockFilter_test |
||||
API_newFilter_test |
||||
API_call_test |
||||
API_gasPrice_test |
||||
API_blockNumber_test |
||||
API_net_version_test |
||||
API_protocolVersion_test |
||||
|
||||
TESTS_FAILED=$(( $TESTS_RAN - $TESTS_PASSED )) |
||||
echo -n ${red} |
||||
[ $TESTS_FAILED -eq 0 ] && echo -n ${green} |
||||
echo "PASSED $TESTS_PASSED/$TESTS_RAN: $TESTS_FAILED TESTS FAILED"${reset} |
||||
} |
||||
|
||||
|
||||
|
||||
if [ "$VERBOSE" == "TRUE" ]; then |
||||
log_API_responses |
||||
fi |
||||
### BETANET TESTS ### |
||||
|
||||
run_tests |
Loading…
Reference in new issue