(
*,
format=1,
lowest_compatible=4,
net_magic="elementsregtest",
bucket_key=1,
len_new=None,
len_tried=None,
mock_checksum=None,
)
| 16 | |
| 17 | |
| 18 | def 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 | |
| 46 | def write_addrman(peers_dat, **kwargs): |
no test coverage detected