Exemplo n.º 1
0
    def test_calculate_preimages(self):
        txin = [
            TxIn(b'script',
                 b'txid',
                 b'\x04',
                 b'witness',
                 sequence=b'\xff\xff\xff\xff')
        ]
        txout = [TxOut(b'\x88\x13\x00\x00\x00\x00\x00\x00', b'script_pubkey')]
        txobj = TxObj(b'\x01\x00\x00\x00', txin, txout, b'\x00\x00\x00\x00')

        want = b'yI\x8d\x99H\xcb\xe3\x88\xce\x83}\xc1\xfc\xaf\xf7\xd5\\\xf67\x93\x86\xb5\xc7M\xd1\xdb\xd2LyJ`<'
        assert calculate_preimages(txobj, [(0, HASH_TYPE, False)])[0] == want

        want = b'\xed\x85\xc1\x0f\xc2\xb1\xc9\x05\xbf\xa6S\x15\xba$\x84\xad\x14\x8dni\x17\x1eD\xd6\xf7e\xd8\x0e\xfb\x05\x93\x1a'
        assert calculate_preimages(txobj, [(0, HASH_TYPE, True)])[0] == want
Exemplo n.º 2
0
 def test_init_segwit(self):
     txin = [
         TxIn(b'script',
              b'txid',
              b'\x04',
              b'witness',
              sequence=b'\xff\xff\xff\xff')
     ]
     txout = [TxOut(b'\x88\x13\x00\x00\x00\x00\x00\x00', b'script_pubkey')]
     txobj = TxObj(b'\x01\x00\x00\x00', b'\xb0Z\xd1\\', txin, txout,
                   b'\x00\x00\x00\x00')
     assert txobj.version == b'\x01\x00\x00\x00'
     assert txobj.timestamp == b'\xb0Z\xd1\\'
     assert txobj.TxIn == txin
     assert txobj.TxOut == txout
     assert txobj.locktime == b'\x00\x00\x00\x00'
Exemplo n.º 3
0
    def test_bytes_repr_segwit(self):
        txin = [
            TxIn(b'script',
                 b'txid',
                 b'\x04',
                 b'witness',
                 sequence=b'\xff\xff\xff\xff')
        ]
        txout = [TxOut(b'\x88\x13\x00\x00\x00\x00\x00\x00', b'script_pubkey')]
        txobj = TxObj(b'\x01\x00\x00\x00', txin, txout, b'\x00\x00\x00\x00')

        assert bytes(txobj) == b''.join([
            b'\x01\x00\x00\x00', b'\x00\x01',
            b'\x01txid\x04\x06script\xff\xff\xff\xff',
            b'\x01\x88\x13\x00\x00\x00\x00\x00\x00\rscript_pubkey', b'witness',
            b'\x00\x00\x00\x00'
        ])
Exemplo n.º 4
0
    def test_calculate_preimages_unsupported_hashtypes(self):
        txin = [
            TxIn(b'script',
                 b'txid',
                 b'\x04',
                 b'witness',
                 sequence=b'\xff\xff\xff\xff')
        ]
        txout = [TxOut(b'\x88\x13\x00\x00\x00\x00\x00\x00', b'script_pubkey')]
        txobj = TxObj(b'\x01\x00\x00\x00', txin, txout, b'\x00\x00\x00\x00')

        with pytest.raises(ValueError):
            calculate_preimages(txobj, [(0, b'\x02\x00\x00\x00', False)])

        with pytest.raises(ValueError):
            calculate_preimages(txobj, [(0, b'\x03\x00\x00\x00', False)])

        with pytest.raises(ValueError):
            calculate_preimages(txobj, [(0, b'\x81\x00\x00\x00', False)])

        with pytest.raises(ValueError):
            calculate_preimages(txobj, [(0, b'\x04\x00\x00\x00', False)])
Exemplo n.º 5
0
    def test_repr(self):
        txin = TxIn(b'script', b'\x06', b'txid', b'\x04')

        assert repr(txin) == "TxIn(b'script', {}, b'txid', {})" \
                             "".format(repr(b'\x06'), repr(b'\x04'))
Exemplo n.º 6
0
 def test_equality(self):
     txin1 = TxIn(b'script', b'\x06', b'txid', b'\x04')
     txin2 = TxIn(b'script', b'\x06', b'txid', b'\x04')
     txin3 = TxIn(b'script', b'\x06', b'txi', b'\x03')
     assert txin1 == txin2
     assert txin1 != txin3
Exemplo n.º 7
0
 def test_init(self):
     txin = TxIn(b'script', b'\x06', b'txid', b'\x04')
     assert txin.script == b'script'
     assert txin.script_len == b'\x06'
     assert txin.txid == b'txid'
     assert txin.txindex == b'\x04'
Exemplo n.º 8
0
FINAL_TX_1 = (
    '01000000018878399d83ec25c627cfbf753ff9ca3602373eac437ab2676154a3c2'
    'da23adf3010000008a473044022068b8dce776ef1c071f4c516836cdfb358e44ef'
    '58e0bf29d6776ebdc4a6b719df02204ea4a9b0f4e6afa4c229a3f11108ff66b178'
    '95015afa0c26c4bbc2b3ba1a1cc60141043d5c2875c9bd116875a71a5db64cffcb'
    '13396b163d039b1d932782489180433476a4352a2add00ebb0d5c94c515b72eb10'
    'f1fd8f3f03b42f4a2b255bfc9aa9e3ffffffff0250c30000000000001976a914e7'
    'c1345fc8f87c68170b3aa798a956c2fe6a9eff88ac0888fc04000000001976a914'
    '92461bde6283b461ece7ddf4dbf1e0a48bd113d888ac00000000')
INPUTS = [
    TxIn((
        b"G0D\x02 E\xb7C\xdb\xaa\xaa,\xd1\xef\x0b\x914oVD\xe3-\xc7\x0c\xde\x05\t"
        b"\x1b7b\xd4\xca\xbbn\xbdq\x1a\x02 tF\x10V\xc2n\xfe\xac\x0bD\x8e\x7f\xa7"
        b"iw=\xd6\xe4Cl\xdeP\\\x8fl\xa60>\xfe1\xf0\x95\x01A\x04=\\(u\xc9\xbd\x11"
        b"hu\xa7\x1a]\xb6L\xff\xcb\x139k\x16=\x03\x9b\x1d\x93'\x82H\x91\x80C4v"
        b"\xa45**\xdd\x00\xeb\xb0\xd5\xc9LQ[r\xeb\x10\xf1\xfd\x8f?\x03\xb4/J+%["
        b"\xfc\x9a\xa9\xe3"), b'\x8a',
         (b"\x88x9\x9d\x83\xec%\xc6'\xcf\xbfu?\xf9\xca6\x027>"
          b"\xacCz\xb2gaT\xa3\xc2\xda#\xad\xf3"), b'\x01\x00\x00\x00')
]
INPUT_BLOCK = (
    '8878399d83ec25c627cfbf753ff9ca3602373eac437ab2676154a3c2da23adf30'
    '10000008a473044022045b743dbaaaa2cd1ef0b91346f5644e32dc70cde05091b'
    '3762d4cabb6ebd711a022074461056c26efeac0b448e7fa769773dd6e4436cde5'
    '05c8f6ca6303efe31f0950141043d5c2875c9bd116875a71a5db64cffcb13396b'
    '163d039b1d932782489180433476a4352a2add00ebb0d5c94c515b72eb10f1fd8'
    'f3f03b42f4a2b255bfc9aa9e3ffffffff')
UNSPENTS = [
    Unspent(
        83727960, 15, '76a91492461bde6283b461ece7ddf4dbf1e0a48bd113d888ac',
Exemplo n.º 9
0
    def test_bytes_repr(self):
        txin = TxIn(b'script', b'txid', b'\x04', sequence=b'\xff\xff\xff\xff')

        assert bytes(txin) == b''.join([b'txid', b'\x04', b'\x06', b'script', b'\xff\xff\xff\xff'])
Exemplo n.º 10
0
    def test_repr_segwit(self):
        txin = TxIn(b'script', b'txid', b'\x04', b'witness', sequence=b'\xff\xff\xff\xff')

        assert repr(txin) == "TxIn(b'script', {}, b'txid', {}, b'witness', {}, {})" \
                             "".format(repr(b'\x06'), repr(b'\x04'), repr(None), repr(b'\xff\xff\xff\xff'))
Exemplo n.º 11
0
 def test_equality(self):
     txin1 = TxIn(b'script', b'txid', b'\x04', sequence=b'\xff\xff\xff\xff')
     txin2 = TxIn(b'script', b'txid', b'\x04', sequence=b'\xff\xff\xff\xff')
     txin3 = TxIn(b'script', b'txi', b'\x03', sequence=b'\xff\xff\xff\xff')
     assert txin1 == txin2
     assert txin1 != txin3
Exemplo n.º 12
0
    def test_repr(self):
        txin = TxIn(b'script', b'txid', b'\x04', sequence=b'\xff\xff\xff\xff')

        assert repr(txin) == "TxIn(b'script', {}, b'txid', {}, {})" "".format(
            repr(b'\x06'), repr(b'\x04'), repr(b'\xff\xff\xff\xff'))