diff options
author | John Newbery <john@johnnewbery.com> | 2019-10-30 10:45:03 -0400 |
---|---|---|
committer | John Newbery <john@johnnewbery.com> | 2019-10-30 11:02:51 -0400 |
commit | 3ed772d2219e58d6afea3d12c0ebebb8487445e7 (patch) | |
tree | eb7c44f2b95e26dae70b206d011fc9f359ac917e /test/functional/test_framework/script.py | |
parent | f950ec25201e8ff7948be99ce3171f9700c4a8dc (diff) |
[tests] remove bignum.py
It only contains one function and is only imported by one
other module (script.py). Just move the function to
script.py.
Diffstat (limited to 'test/functional/test_framework/script.py')
-rw-r--r-- | test/functional/test_framework/script.py | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/test/functional/test_framework/script.py b/test/functional/test_framework/script.py index 0dbd521433..f14191fe51 100644 --- a/test/functional/test_framework/script.py +++ b/test/functional/test_framework/script.py @@ -9,7 +9,6 @@ This file is modified from python-bitcoinlib. import hashlib import struct -from .bignum import bn2vch from .messages import ( CTransaction, CTxOut, @@ -26,6 +25,40 @@ OPCODE_NAMES = {} def hash160(s): return hashlib.new('ripemd160', sha256(s)).digest() +def bn2vch(v): + """Convert number to bitcoin-specific little endian format.""" + # The top bit is used to indicate the sign of the number. If there + # isn't a spare bit in the bit length, add an extension byte. + have_ext = False + ext = bytearray() + if v.bit_length() > 0: + have_ext = (v.bit_length() & 0x07) == 0 + ext.append(0) + + # Is the number negative? + neg = False + if v < 0: + neg = True + v = -v + + # Convert the int to bytes + v_bin = bytearray() + bytes_len = (v.bit_length() + 7) // 8 + for i in range(bytes_len, 0, -1): + v_bin.append((v >> ((i - 1) * 8)) & 0xff) + + # Add the sign bit if necessary + if neg: + if have_ext: + ext[0] |= 0x80 + else: + v_bin[0] |= 0x80 + + v_bytes = ext + v_bin + # Reverse bytes ordering for LE + v_bytes.reverse() + + return bytes(v_bytes) _opcode_instances = [] class CScriptOp(int): |