Changes to integrate FLO Multisig
Co-Authored-By: Sai Raj <39055732+sairajzero@users.noreply.github.com>
This commit is contained in:
parent
c4f1c8b5af
commit
1f7cbcfa13
@ -14,7 +14,7 @@ ECDSA_SEC256K1_ORDER = 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8
|
|||||||
|
|
||||||
MAINNET_ADDRESS_BYTE_PREFIX = b'\x23'
|
MAINNET_ADDRESS_BYTE_PREFIX = b'\x23'
|
||||||
TESTNET_ADDRESS_BYTE_PREFIX = b'\x73'
|
TESTNET_ADDRESS_BYTE_PREFIX = b'\x73'
|
||||||
MAINNET_SCRIPT_ADDRESS_BYTE_PREFIX = b'\x05'
|
MAINNET_SCRIPT_ADDRESS_BYTE_PREFIX = b'\x5e'
|
||||||
TESTNET_SCRIPT_ADDRESS_BYTE_PREFIX = b'\xc4'
|
TESTNET_SCRIPT_ADDRESS_BYTE_PREFIX = b'\xc4'
|
||||||
MAINNET_SEGWIT_ADDRESS_BYTE_PREFIX = b'\x03\x03\x00\x02\x03'
|
MAINNET_SEGWIT_ADDRESS_BYTE_PREFIX = b'\x03\x03\x00\x02\x03'
|
||||||
TESTNET_SEGWIT_ADDRESS_BYTE_PREFIX = b'\x03\x03\x00\x14\x02'
|
TESTNET_SEGWIT_ADDRESS_BYTE_PREFIX = b'\x03\x03\x00\x14\x02'
|
||||||
@ -22,7 +22,8 @@ TESTNET_SEGWIT_ADDRESS_BYTE_PREFIX = b'\x03\x03\x00\x14\x02'
|
|||||||
MAINNET_ADDRESS_PREFIX = 'F'
|
MAINNET_ADDRESS_PREFIX = 'F'
|
||||||
TESTNET_ADDRESS_PREFIX = 'o'
|
TESTNET_ADDRESS_PREFIX = 'o'
|
||||||
TESTNET_ADDRESS_PREFIX_2 = 'o'
|
TESTNET_ADDRESS_PREFIX_2 = 'o'
|
||||||
MAINNET_SCRIPT_ADDRESS_PREFIX = '3'
|
MAINNET_SCRIPT_ADDRESS_PREFIX = 'e'
|
||||||
|
MAINNET_SCRIPT_ADDRESS_PREFIX_2 = 'f'
|
||||||
TESTNET_SCRIPT_ADDRESS_PREFIX = '2'
|
TESTNET_SCRIPT_ADDRESS_PREFIX = '2'
|
||||||
|
|
||||||
MAINNET_PRIVATE_KEY_UNCOMPRESSED_PREFIX = '5'
|
MAINNET_PRIVATE_KEY_UNCOMPRESSED_PREFIX = '5'
|
||||||
@ -35,6 +36,7 @@ ADDRESS_PREFIX_LIST = (MAINNET_ADDRESS_PREFIX,
|
|||||||
TESTNET_ADDRESS_PREFIX,
|
TESTNET_ADDRESS_PREFIX,
|
||||||
TESTNET_ADDRESS_PREFIX_2,
|
TESTNET_ADDRESS_PREFIX_2,
|
||||||
MAINNET_SCRIPT_ADDRESS_PREFIX,
|
MAINNET_SCRIPT_ADDRESS_PREFIX,
|
||||||
|
MAINNET_SCRIPT_ADDRESS_PREFIX_2,
|
||||||
TESTNET_SCRIPT_ADDRESS_PREFIX)
|
TESTNET_SCRIPT_ADDRESS_PREFIX)
|
||||||
|
|
||||||
PRIVATE_KEY_PREFIX_LIST = (MAINNET_PRIVATE_KEY_UNCOMPRESSED_PREFIX,
|
PRIVATE_KEY_PREFIX_LIST = (MAINNET_PRIVATE_KEY_UNCOMPRESSED_PREFIX,
|
||||||
|
|||||||
@ -129,7 +129,8 @@ def address_type(address, num=False):
|
|||||||
:return: address type in string or numeric format.
|
:return: address type in string or numeric format.
|
||||||
"""
|
"""
|
||||||
if address[0] in (TESTNET_SCRIPT_ADDRESS_PREFIX,
|
if address[0] in (TESTNET_SCRIPT_ADDRESS_PREFIX,
|
||||||
MAINNET_SCRIPT_ADDRESS_PREFIX):
|
MAINNET_SCRIPT_ADDRESS_PREFIX,
|
||||||
|
MAINNET_SCRIPT_ADDRESS_PREFIX_2):
|
||||||
t = 'P2SH'
|
t = 'P2SH'
|
||||||
elif address[0] in (MAINNET_ADDRESS_PREFIX,
|
elif address[0] in (MAINNET_ADDRESS_PREFIX,
|
||||||
TESTNET_ADDRESS_PREFIX,
|
TESTNET_ADDRESS_PREFIX,
|
||||||
@ -155,7 +156,7 @@ def address_net_type(address):
|
|||||||
:param address: address in base58 or bech32 format.
|
:param address: address in base58 or bech32 format.
|
||||||
:return: address network type in string format or None.
|
:return: address network type in string format or None.
|
||||||
"""
|
"""
|
||||||
if address[0] in (MAINNET_SCRIPT_ADDRESS_PREFIX,
|
if address[0] in (MAINNET_SCRIPT_ADDRESS_PREFIX, MAINNET_SCRIPT_ADDRESS_PREFIX_2,
|
||||||
MAINNET_ADDRESS_PREFIX):
|
MAINNET_ADDRESS_PREFIX):
|
||||||
return "mainnet"
|
return "mainnet"
|
||||||
elif address[:2] == MAINNET_SEGWIT_ADDRESS_PREFIX:
|
elif address[:2] == MAINNET_SEGWIT_ADDRESS_PREFIX:
|
||||||
@ -178,7 +179,8 @@ def address_to_script(address, hex=False):
|
|||||||
:return: public key script in HEX or bytes string.
|
:return: public key script in HEX or bytes string.
|
||||||
"""
|
"""
|
||||||
if address[0] in (TESTNET_SCRIPT_ADDRESS_PREFIX,
|
if address[0] in (TESTNET_SCRIPT_ADDRESS_PREFIX,
|
||||||
MAINNET_SCRIPT_ADDRESS_PREFIX):
|
MAINNET_SCRIPT_ADDRESS_PREFIX,
|
||||||
|
MAINNET_SCRIPT_ADDRESS_PREFIX_2):
|
||||||
s = [OP_HASH160,
|
s = [OP_HASH160,
|
||||||
b'\x14',
|
b'\x14',
|
||||||
address_to_hash(address, hex=False),
|
address_to_hash(address, hex=False),
|
||||||
@ -222,6 +224,7 @@ def is_address_valid(address, testnet=False):
|
|||||||
return False
|
return False
|
||||||
if address[0] in (MAINNET_ADDRESS_PREFIX,
|
if address[0] in (MAINNET_ADDRESS_PREFIX,
|
||||||
MAINNET_SCRIPT_ADDRESS_PREFIX,
|
MAINNET_SCRIPT_ADDRESS_PREFIX,
|
||||||
|
MAINNET_SCRIPT_ADDRESS_PREFIX_2,
|
||||||
TESTNET_ADDRESS_PREFIX,
|
TESTNET_ADDRESS_PREFIX,
|
||||||
TESTNET_ADDRESS_PREFIX_2,
|
TESTNET_ADDRESS_PREFIX_2,
|
||||||
TESTNET_SCRIPT_ADDRESS_PREFIX):
|
TESTNET_SCRIPT_ADDRESS_PREFIX):
|
||||||
@ -232,7 +235,8 @@ def is_address_valid(address, testnet=False):
|
|||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
if address[0] not in (MAINNET_ADDRESS_PREFIX,
|
if address[0] not in (MAINNET_ADDRESS_PREFIX,
|
||||||
MAINNET_SCRIPT_ADDRESS_PREFIX):
|
MAINNET_SCRIPT_ADDRESS_PREFIX,
|
||||||
|
MAINNET_SCRIPT_ADDRESS_PREFIX_2):
|
||||||
return False
|
return False
|
||||||
h = decode_base58(address)
|
h = decode_base58(address)
|
||||||
if len(h) != 25:
|
if len(h) != 25:
|
||||||
@ -275,11 +279,11 @@ def is_address_valid(address, testnet=False):
|
|||||||
if checksum != checksum2:
|
if checksum != checksum2:
|
||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
def get_witness_version(address):
|
def get_witness_version(address):
|
||||||
address = address.split("1")[1]
|
address = address.split("1")[1]
|
||||||
h = rebase_32_to_5(address)
|
h = rebase_32_to_5(address)
|
||||||
return h[0]
|
return h[0]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user