14 from io
import BytesIO
15 from codecs
import encode
19 import http.client
as httplib
23 import urllib.parse
as urlparse
30 t = unpack(b
"<I", f.read(4))[0]
36 conn = httplib.HTTPConnection(host, port)
37 conn.request(
'GET', path)
40 return conn.getresponse()
42 return conn.getresponse().read().decode(
'utf-8')
46 conn = httplib.HTTPConnection(host, port)
47 conn.request(
'POST', path, requestdata)
50 return conn.getresponse()
52 return conn.getresponse().read()
55 FORMAT_SEPARATOR =
"." 58 print(
"Initializing test directory "+self.options.tmpdir)
70 url = urlparse.urlparse(self.
nodes[0].url)
71 print "Mining blocks..." 90 json_obj = json.loads(json_string)
91 vintx = json_obj[
'vin'][0][
'txid']
94 for vout
in json_obj[
'vout']:
95 if vout[
'value'] == 0.1:
102 json_request =
'/checkmempool/'+txid+
'-'+str(n)
104 json_obj = json.loads(json_string)
117 json_request =
'/checkmempool/'+vintx+
'-0' 119 json_obj = json.loads(json_string)
134 json_request =
'/checkmempool/'+txid+
'-'+str(n)+
'/'+vintx+
'-0' 136 json_obj = json.loads(json_string)
143 binaryRequest = b
'\x01\x02' 145 binaryRequest += pack(
"i", n)
147 binaryRequest += pack(
"i", 0)
151 output.write(bin_response)
153 chainHeight = unpack(
"i", output.read(4))[0]
154 hashFromBinResponse = hex(
deser_uint256(output))[2:].zfill(65).rstrip(
"L")
167 json_obj = json.loads(json_string)
168 vintx = json_obj[
'vin'][0][
'txid']
171 for vout
in json_obj[
'vout']:
172 if vout[
'value'] == 0.1:
175 json_request =
'/'+txid+
'-'+str(n)
177 json_obj = json.loads(json_string)
180 json_request =
'/checkmempool/'+txid+
'-'+str(n)
182 json_obj = json.loads(json_string)
186 json_request =
'{"checkmempool' 190 json_request =
'{"checkmempool' 198 json_request =
'/checkmempool/' 199 for x
in range(0, 20):
200 json_request += txid+
'-'+str(n)+
'/' 201 json_request = json_request.rstrip(
"/")
205 json_request =
'/checkmempool/' 206 for x
in range(0, 15):
207 json_request += txid+
'-'+str(n)+
'/' 208 json_request = json_request.rstrip(
"/")
223 response_str = response.read()
228 assert_equal(int(response_header.getheader(
'content-length')), 80)
229 response_header_str = response_header.read()
236 response_hex_str = response_hex.read()
237 assert_equal(encode(response_str,
"hex_codec")[0:160], response_hex_str[0:160])
243 response_header_hex_str = response_header_hex.read()
244 assert_equal(response_hex_str[0:160], response_header_hex_str[0:160])
245 assert_equal(encode(response_header_str,
"hex_codec")[0:160], response_header_hex_str[0:160])
249 block_json_obj = json.loads(block_json_string)
255 response_header_json_str = response_header_json.read().decode(
'utf-8')
256 json_obj = json.loads(response_header_json_str, parse_float=Decimal)
262 assert_equal(json_obj[0][
'hash'], rpc_block_json[
'hash'])
263 assert_equal(json_obj[0][
'confirmations'], rpc_block_json[
'confirmations'])
264 assert_equal(json_obj[0][
'height'], rpc_block_json[
'height'])
265 assert_equal(json_obj[0][
'version'], rpc_block_json[
'version'])
266 assert_equal(json_obj[0][
'merkleroot'], rpc_block_json[
'merkleroot'])
267 assert_equal(json_obj[0][
'time'], rpc_block_json[
'time'])
268 assert_equal(json_obj[0][
'nonce'], rpc_block_json[
'nonce'])
269 assert_equal(json_obj[0][
'bits'], rpc_block_json[
'bits'])
270 assert_equal(json_obj[0][
'difficulty'], rpc_block_json[
'difficulty'])
271 assert_equal(json_obj[0][
'chainwork'], rpc_block_json[
'chainwork'])
272 assert_equal(json_obj[0][
'previousblockhash'], rpc_block_json[
'previousblockhash'])
279 response_header_json_str = response_header_json.read().decode(
'utf-8')
280 json_obj = json.loads(response_header_json_str)
284 tx_hash = block_json_obj[
'tx'][0][
'txid']
286 json_obj = json.loads(json_string)
305 json_obj = json.loads(json_string)
312 json_obj = json.loads(json_string)
322 json_obj = json.loads(json_string)
323 for tx
in json_obj[
'tx']:
324 if not 'coinbase' in tx[
'vin'][0]:
329 json_obj = json.loads(json_string)
336 json_string =
http_get_call(url.hostname, url.port,
'/rest/chaininfo.json')
337 json_obj = json.loads(json_string)
340 if __name__ ==
'__main__':
def setup_network(self, split=False)
def hex_str_to_bytes(hex_str)
def assert_greater_than(thing1, thing2)
UniValue getbalance(const UniValue ¶ms, bool fHelp)
def start_nodes(num_nodes, dirname, extra_args=None, rpchost=None, binary=None)
UniValue getblock(const UniValue ¶ms, bool fHelp)
UniValue sendtoaddress(const UniValue ¶ms, bool fHelp)
UniValue getnewaddress(const UniValue ¶ms, bool fHelp)
def initialize_chain_clean(test_dir, num_nodes)
def http_post_call(host, port, path, requestdata='', response_object=0)
def http_get_call(host, port, path, response_object=0)
UniValue generate(const UniValue ¶ms, bool fHelp)
UniValue getbestblockhash(const UniValue ¶ms, bool fHelp)
def assert_equal(thing1, thing2)
def connect_nodes_bi(nodes, a, b)