MCPcopy Create free account
hub / github.com/ElementsProject/elements / serialize_addrman

Function serialize_addrman

test/functional/feature_addrman.py:18–43  ·  view source on GitHub ↗
(
    *,
    format=1,
    lowest_compatible=4,
    net_magic="elementsregtest",
    bucket_key=1,
    len_new=None,
    len_tried=None,
    mock_checksum=None,
)

Source from the content-addressed store, hash-verified

16
17
18def serialize_addrman(
19 *,
20 format=1,
21 lowest_compatible=4,
22 net_magic="elementsregtest",
23 bucket_key=1,
24 len_new=None,
25 len_tried=None,
26 mock_checksum=None,
27):
28 new = []
29 tried = []
30 INCOMPATIBILITY_BASE = 32
31 r = MAGIC_BYTES[net_magic]
32 r += struct.pack("B", format)
33 r += struct.pack("B", INCOMPATIBILITY_BASE + lowest_compatible)
34 r += ser_uint256(bucket_key)
35 r += struct.pack("i", len_new or len(new))
36 r += struct.pack("i", len_tried or len(tried))
37 ADDRMAN_NEW_BUCKET_COUNT = 1 << 10
38 r += struct.pack("i", ADDRMAN_NEW_BUCKET_COUNT ^ (1 << 30))
39 for _ in range(ADDRMAN_NEW_BUCKET_COUNT):
40 r += struct.pack("i", 0)
41 checksum = hash256(r)
42 r += mock_checksum or checksum
43 return r
44
45
46def write_addrman(peers_dat, **kwargs):

Callers 2

write_addrmanFunction · 0.85
run_testMethod · 0.85

Calls 2

ser_uint256Function · 0.90
hash256Function · 0.90

Tested by

no test coverage detected