-
Notifications
You must be signed in to change notification settings - Fork 4
/
block_header.py
52 lines (42 loc) · 1.64 KB
/
block_header.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import requests
def get_block_header_by_txid(txid):
# URL to get transaction information
tx_url = f'https://api.blockcypher.com/v1/btc/main/txs/{txid}'
# Request transaction information
tx_response = requests.get(tx_url)
if tx_response.status_code != 200:
print(f"Error while retrieving transaction information: {tx_response.status_code}")
return
tx_data = tx_response.json()
# Obtaining a block hash from transaction data
block_hash = tx_data.get('block_hash')
if not block_hash:
print("Transaction not found in block.")
return
# URL to get block information
block_url = f'https://api.blockcypher.com/v1/btc/main/blocks/{block_hash}'
# Request information about a block
block_response = requests.get(block_url)
if block_response.status_code != 200:
print(f"Error while retrieving block information: {block_response.status_code}")
return
block_data = block_response.json()
# Getting Block Header
block_header = {
'Block': block_data.get('hash'),
'Block Height': block_data.get('height'),
'Mined Time': block_data.get('time'),
'Prev Block': block_data.get('prev_block'),
'Merkle Root': block_data.get('mrkl_root'),
'Nonce': block_data.get('nonce'),
'Bits': block_data.get('bits'),
'Version': block_data.get('ver')
}
return block_header
# Usage example
txid = input("Enter TXID: ")
block_header = get_block_header_by_txid(txid)
if block_header:
print("Block Header:")
for key, value in block_header.items():
print(f"{key}: {value}")