mirror of
https://github.com/fusion44/blitz_api.git
synced 2026-08-14 12:02:46 +02:00
172 lines
4.4 KiB
Python
172 lines
4.4 KiB
Python
from app.bitcoind.models import (
|
|
Bip9Statistics,
|
|
BlockchainInfo,
|
|
BtcInfo,
|
|
BtcLocalAddress,
|
|
BtcNetwork,
|
|
NetworkInfo,
|
|
)
|
|
|
|
blockhain_info = {
|
|
"chain": "main",
|
|
"blocks": 257524,
|
|
"headers": 703160,
|
|
"bestblockhash": "00000000000000182104048e3477ffdfe3b0528f156558e270102d6a557e8843",
|
|
"difficulty": 86933017.77119441,
|
|
"mediantime": 1378985988,
|
|
"verificationprogress": 0.03523320739750064,
|
|
"initialblockdownload": True,
|
|
"chainwork": "0000000000000000000000000000000000000000000000e76a0e37f2b9739cd6",
|
|
"size_on_disk": 12340553639,
|
|
"pruned": False,
|
|
"softforks": {
|
|
"bip34": {"type": "buried", "active": True, "height": 227931},
|
|
"bip66": {"type": "buried", "active": False, "height": 363725},
|
|
"bip65": {"type": "buried", "active": False, "height": 388381},
|
|
"csv": {"type": "buried", "active": False, "height": 419328},
|
|
"segwit": {"type": "buried", "active": False, "height": 481824},
|
|
"taproot": {
|
|
"type": "bip9",
|
|
"bip9": {
|
|
"status": "defined",
|
|
"start_time": 1619222400,
|
|
"timeout": 1628640000,
|
|
"since": 0,
|
|
"min_activation_height": 709632,
|
|
"statistics": {
|
|
"period": 0,
|
|
"threshold": 0,
|
|
"elapsed": 0,
|
|
"count": 0,
|
|
"possible": True,
|
|
},
|
|
"height": 0,
|
|
"active": True,
|
|
},
|
|
"active": False,
|
|
},
|
|
},
|
|
"warnings": "",
|
|
}
|
|
|
|
network_info = d = {
|
|
"version": 220000,
|
|
"subversion": "/Satoshi:22.0.0/",
|
|
"protocolversion": 70016,
|
|
"localservices": "000000000000040d",
|
|
"localservicesnames": ["NETWORK", "BLOOM", "WITNESS", "NETWORK_LIMITED"],
|
|
"localrelay": True,
|
|
"timeoffset": -3,
|
|
"networkactive": True,
|
|
"connections": 10,
|
|
"connections_in": 0,
|
|
"connections_out": 10,
|
|
"networks": [
|
|
{
|
|
"name": "ipv4",
|
|
"limited": False,
|
|
"reachable": True,
|
|
"proxy": "",
|
|
"proxy_randomize_credentials": False,
|
|
},
|
|
{
|
|
"name": "ipv6",
|
|
"limited": False,
|
|
"reachable": True,
|
|
"proxy": "",
|
|
"proxy_randomize_credentials": False,
|
|
},
|
|
{
|
|
"name": "onion",
|
|
"limited": False,
|
|
"reachable": True,
|
|
"proxy": "127.0.0.1:9050",
|
|
"proxy_randomize_credentials": True,
|
|
},
|
|
{
|
|
"name": "i2p",
|
|
"limited": True,
|
|
"reachable": False,
|
|
"proxy": "",
|
|
"proxy_randomize_credentials": False,
|
|
},
|
|
],
|
|
"relayfee": 0.00001000,
|
|
"incrementalfee": 0.00001000,
|
|
"localaddresses": [
|
|
{
|
|
"address": "123.onion",
|
|
"port": 8333,
|
|
"score": 4,
|
|
},
|
|
{
|
|
"address": "1.2.3.6",
|
|
"port": 8334,
|
|
"score": 4,
|
|
},
|
|
],
|
|
"warnings": "",
|
|
}
|
|
|
|
|
|
def test_BtcNetwork():
|
|
d = {
|
|
"name": "ipv4",
|
|
"limited": False,
|
|
"reachable": True,
|
|
"proxy": "",
|
|
"proxy_randomize_credentials": False,
|
|
}
|
|
|
|
n = BtcNetwork.from_rpc(d)
|
|
assert n.name == d["name"]
|
|
assert n.limited == d["limited"]
|
|
assert n.reachable == d["reachable"]
|
|
assert n.proxy == d["proxy"]
|
|
assert n.proxy_randomize_credentials == d["proxy_randomize_credentials"]
|
|
|
|
|
|
def test_BtcLocalAddress():
|
|
d = {
|
|
"address": "123.onion",
|
|
"port": 8333,
|
|
"score": 1,
|
|
}
|
|
|
|
addr = BtcLocalAddress.from_rpc(local_address=d)
|
|
assert addr.address == d["address"]
|
|
assert addr.port == d["port"]
|
|
assert addr.score == d["score"]
|
|
|
|
|
|
def test_NetworkInfo():
|
|
ni = NetworkInfo.from_rpc(r=network_info)
|
|
assert len(ni.networks) == 4
|
|
assert len(ni.local_addresses) == 2
|
|
assert ni
|
|
|
|
|
|
def test_Bip9Statistics():
|
|
d = {
|
|
"period": 0,
|
|
"threshold": 0,
|
|
"elapsed": 0,
|
|
"count": 0,
|
|
"possible": True,
|
|
}
|
|
s = Bip9Statistics.from_rpc(d)
|
|
assert s
|
|
|
|
|
|
def test_BlockchainInfo():
|
|
i = BlockchainInfo.from_rpc(blockhain_info)
|
|
assert i
|
|
assert len(i.softforks) == 6
|
|
|
|
|
|
def test_BtcInfo():
|
|
s = BtcInfo.from_rpc(
|
|
binfo=BlockchainInfo.from_rpc(blockhain_info),
|
|
ninfo=NetworkInfo.from_rpc(network_info),
|
|
)
|
|
assert s
|