pyflo/pybtc/test/script_functions.py
4tochka f4e5ec138e OP_RETURN recognize fix
OP_RETURN_NON_STANDARD type
2019-03-13 21:21:53 +04:00

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")