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