MCPcopy Index your code
hub / github.com/petertodd/python-bitcoinlib / convertbits

Function convertbits

bitcoin/segwit_addr.py:79–99  ·  view source on GitHub ↗

General power-of-2 base conversion.

(data, frombits, tobits, pad=True)

Source from the content-addressed store, hash-verified

77
78
79def convertbits(data, frombits, tobits, pad=True):
80 """General power-of-2 base conversion."""
81 acc = 0
82 bits = 0
83 ret = []
84 maxv = (1 << tobits) - 1
85 max_acc = (1 << (frombits + tobits - 1)) - 1
86 for value in data:
87 if value < 0 or (value >> frombits):
88 return None
89 acc = ((acc << frombits) | value) & max_acc
90 bits += frombits
91 while bits >= tobits:
92 bits -= tobits
93 ret.append((acc >> bits) & maxv)
94 if pad:
95 if bits:
96 ret.append((acc << (tobits - bits)) & maxv)
97 elif bits >= frombits or ((acc << (tobits - bits)) & maxv):
98 return None
99 return ret
100
101
102def decode(hrp, addr):

Callers 2

decodeFunction · 0.85
encodeFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected