56 lines
3.1 KiB
Python
56 lines
3.1 KiB
Python
import unittest
|
|
import os, sys
|
|
parentPath = os.path.abspath("..")
|
|
if parentPath not in sys.path:
|
|
sys.path.insert(0, parentPath)
|
|
|
|
from pybtc.functions import *
|
|
|
|
|
|
|
|
class ScriptFunctionsTests(unittest.TestCase):
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
print("\nTesting script functions:\n")
|
|
|
|
def test_script_to_address(self):
|
|
self.assertEqual(script_to_address("76a914f18e5346e6efe17246306ce82f11ca53542fe00388ac"),
|
|
"1P2EMAeiSJEfCrtjC6ovdWaGWW1Mb6azpX")
|
|
self.assertEqual(script_to_address("a9143f4eecba122ad73039d481c8d37f99cb4f887cd887"),
|
|
"37Tm3Qz8Zw2VJrheUUhArDAoq58S6YrS3g")
|
|
self.assertEqual(script_to_address("76a914a307d67484911deee457779b17505cedd20e1fe988ac", testnet=1),
|
|
"mvNyptwisQTmwL3vN8VMaVUrA3swVCX83c")
|
|
self.assertEqual(script_to_address("0014751e76e8199196d454941c45d1b3a323f1433bd6", testnet=0),
|
|
"bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4")
|
|
self.assertEqual(script_to_address("0020701a8d401c84fb13e6baf169d59684e17abd9fa216c8cc5b9fc63d622ff8c58d"),
|
|
"bc1qwqdg6squsna38e46795at95yu9atm8azzmyvckulcc7kytlcckxswvvzej")
|
|
|
|
|
|
def test_op_return_parse(self):
|
|
self.assertEqual(parse_script(OP_RETURN + b"\x00")["type"], "NULL_DATA")
|
|
self.assertEqual(parse_script(OP_RETURN + b"\x00")["data"], b"")
|
|
self.assertEqual(parse_script(OP_RETURN + b"\x2012345678901234567890123456789012")["type"], "NULL_DATA")
|
|
self.assertEqual(parse_script(OP_RETURN + b"\x2012345678901234567890123456789012")["data"],
|
|
b"12345678901234567890123456789012")
|
|
|
|
self.assertEqual(parse_script(OP_RETURN + b"\x201234567890123456789012345678901211")["type"],
|
|
"NULL_DATA_NON_STANDARD")
|
|
|
|
self.assertEqual(parse_script(OP_RETURN + OP_PUSHDATA1 + b"\x00")["type"], "NULL_DATA")
|
|
self.assertEqual(parse_script(OP_RETURN + OP_PUSHDATA1 + b"\x00")["data"], b"")
|
|
self.assertEqual(parse_script(OP_RETURN + OP_PUSHDATA1 + b"\x2012345678901234567890123456789012")["type"],
|
|
"NULL_DATA")
|
|
self.assertEqual(parse_script(OP_RETURN + OP_PUSHDATA1 + b"\x2012345678901234567890123456789012")["data"],
|
|
b"12345678901234567890123456789012")
|
|
|
|
self.assertEqual(parse_script(OP_RETURN + OP_PUSHDATA1 + b"\x201234567890123456789012345678901211")["type"],
|
|
"NULL_DATA_NON_STANDARD")
|
|
self.assertEqual(parse_script(OP_RETURN + OP_PUSHDATA1 + b"\x5012345678901234567890123456789012345678901234567890123456789012345678901234567890")["type"],
|
|
"NULL_DATA")
|
|
self.assertEqual(parse_script(OP_RETURN + OP_PUSHDATA1 + b"\x5012345678901234567890123456789012345678901234567890123456789012345678901234567890")["data"],
|
|
b"12345678901234567890123456789012345678901234567890123456789012345678901234567890")
|
|
|
|
self.assertEqual(parse_script(
|
|
OP_RETURN + OP_PUSHDATA1 + b"\x51123456789012345678901234567890123456789012345678901234567890123456789012345678901")["type"],
|
|
"NULL_DATA_NON_STANDARD")
|