@ -235,12 +235,43 @@ class RESTTest (BitcoinTestFramework):
assert_equal ( response_header_str . encode ( " hex " ) [ 0 : 160 ] , response_header_hex_str [ 0 : 160 ] )
assert_equal ( response_header_str . encode ( " hex " ) [ 0 : 160 ] , response_header_hex_str [ 0 : 160 ] )
# check json format
# check json format
json_string = http_get_call ( url . hostname , url . port , ' /rest/block/ ' + bb_hash + self . FORMAT_SEPARATOR + ' json ' )
block_json_string = http_get_call ( url . hostname , url . port , ' /rest/block/ ' + bb_hash + self . FORMAT_SEPARATOR + ' json ' )
json_obj = json . loads ( json_string )
block_json_obj = json . loads ( block_json_string )
assert_equal ( json_obj [ ' hash ' ] , bb_hash )
assert_equal ( block_json_obj [ ' hash ' ] , bb_hash )
# compare with json block header
response_header_json = http_get_call ( url . hostname , url . port , ' /rest/headers/1/ ' + bb_hash + self . FORMAT_SEPARATOR + " json " , " " , True )
assert_equal ( response_header_json . status , 200 )
response_header_json_str = response_header_json . read ( )
json_obj = json . loads ( response_header_json_str )
assert_equal ( len ( json_obj ) , 1 ) #ensure that there is one header in the json response
assert_equal ( json_obj [ 0 ] [ ' hash ' ] , bb_hash ) #request/response hash should be the same
#compare with normal RPC block response
rpc_block_json = self . nodes [ 0 ] . getblock ( bb_hash )
assert_equal ( json_obj [ 0 ] [ ' hash ' ] , rpc_block_json [ ' hash ' ] )
assert_equal ( json_obj [ 0 ] [ ' confirmations ' ] , rpc_block_json [ ' confirmations ' ] )
assert_equal ( json_obj [ 0 ] [ ' height ' ] , rpc_block_json [ ' height ' ] )
assert_equal ( json_obj [ 0 ] [ ' version ' ] , rpc_block_json [ ' version ' ] )
assert_equal ( json_obj [ 0 ] [ ' merkleroot ' ] , rpc_block_json [ ' merkleroot ' ] )
assert_equal ( json_obj [ 0 ] [ ' time ' ] , rpc_block_json [ ' time ' ] )
assert_equal ( json_obj [ 0 ] [ ' nonce ' ] , rpc_block_json [ ' nonce ' ] )
assert_equal ( json_obj [ 0 ] [ ' bits ' ] , rpc_block_json [ ' bits ' ] )
assert_equal ( json_obj [ 0 ] [ ' difficulty ' ] , rpc_block_json [ ' difficulty ' ] )
assert_equal ( json_obj [ 0 ] [ ' chainwork ' ] , rpc_block_json [ ' chainwork ' ] )
assert_equal ( json_obj [ 0 ] [ ' previousblockhash ' ] , rpc_block_json [ ' previousblockhash ' ] )
#see if we can get 5 headers in one response
self . nodes [ 1 ] . generate ( 5 )
self . sync_all ( )
response_header_json = http_get_call ( url . hostname , url . port , ' /rest/headers/5/ ' + bb_hash + self . FORMAT_SEPARATOR + " json " , " " , True )
assert_equal ( response_header_json . status , 200 )
response_header_json_str = response_header_json . read ( )
json_obj = json . loads ( response_header_json_str )
assert_equal ( len ( json_obj ) , 5 ) #now we should have 5 header objects
# do tx test
# do tx test
tx_hash = json_obj [ ' tx ' ] [ 0 ] [ ' txid ' ] ;
tx_hash = block_ json_obj[ ' tx ' ] [ 0 ] [ ' txid ' ] ;
json_string = http_get_call ( url . hostname , url . port , ' /rest/tx/ ' + tx_hash + self . FORMAT_SEPARATOR + " json " )
json_string = http_get_call ( url . hostname , url . port , ' /rest/tx/ ' + tx_hash + self . FORMAT_SEPARATOR + " json " )
json_obj = json . loads ( json_string )
json_obj = json . loads ( json_string )
assert_equal ( json_obj [ ' txid ' ] , tx_hash )
assert_equal ( json_obj [ ' txid ' ] , tx_hash )