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

Function convertbits

test/functional/test_framework/liquid_addr.py:63–83  ·  view source on GitHub ↗

General power-of-2 base conversion.

(data, frombits, tobits, pad=True)

Source from the content-addressed store, hash-verified

61
62
63def convertbits(data, frombits, tobits, pad=True):
64 """General power-of-2 base conversion."""
65 acc = 0
66 bits = 0
67 ret = []
68 maxv = (1 << tobits) - 1
69 max_acc = (1 << (frombits + tobits - 1)) - 1
70 for value in data:
71 if value < 0 or (value >> frombits):
72 return None
73 acc = ((acc << frombits) | value) & max_acc
74 bits += frombits
75 while bits >= tobits:
76 bits -= tobits
77 ret.append((acc >> bits) & maxv)
78 if pad:
79 if bits:
80 ret.append((acc << (tobits - bits)) & maxv)
81 elif bits >= frombits or ((acc << (tobits - bits)) & maxv):
82 return None
83 return ret
84
85
86def decode(hrp, addr):

Callers 2

decodeFunction · 0.70
encodeFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected