lbry-sdk/lbry/tests/unit/wallet/test_script.py
2019-06-20 22:50:39 -04:00

46 lines
2.5 KiB
Python

import unittest
from binascii import hexlify, unhexlify
from lbry.wallet.script import OutputScript
class TestPayClaimNamePubkeyHash(unittest.TestCase):
def pay_claim_name_pubkey_hash(self, name, claim, pubkey_hash):
# this checks that factory function correctly sets up the script
src1 = OutputScript.pay_claim_name_pubkey_hash(
name, unhexlify(claim), unhexlify(pubkey_hash))
self.assertEqual(src1.template.name, 'claim_name+pay_pubkey_hash')
self.assertEqual(src1.values['claim_name'], name)
self.assertEqual(hexlify(src1.values['claim']), claim)
self.assertEqual(hexlify(src1.values['pubkey_hash']), pubkey_hash)
# now we test that it will round trip
src2 = OutputScript(src1.source)
self.assertEqual(src2.template.name, 'claim_name+pay_pubkey_hash')
self.assertEqual(src2.values['claim_name'], name)
self.assertEqual(hexlify(src2.values['claim']), claim)
self.assertEqual(hexlify(src2.values['pubkey_hash']), pubkey_hash)
return hexlify(src1.source)
def test_pay_claim_name_pubkey_hash_1(self):
self.assertEqual(
self.pay_claim_name_pubkey_hash(
# name
b'cats',
# claim
b'080110011a7808011230080410011a084d616361726f6e6922002a003214416c6c20726967687473'
b'2072657365727665642e38004a0052005a001a42080110011a30add80aaf02559ba09853636a0658'
b'c42b727cb5bb4ba8acedb4b7fe656065a47a31878dbf9912135ddb9e13806cc1479d220a696d6167'
b'652f6a7065672a5c080110031a404180cc0fa4d3839ee29cca866baed25fafb43fca1eb3b608ee88'
b'9d351d3573d042c7b83e2e643db0d8e062a04e6e9ae6b90540a2f95fe28638d0f18af4361a1c2214'
b'f73de93f4299fb32c32f949e02198a8e91101abd',
# pub key
b'be16e4b0f9bd8f6d47d02b3a887049c36d3b84cb'
),
b'b504636174734cdc080110011a7808011230080410011a084d616361726f6e6922002a003214416c6c207'
b'269676874732072657365727665642e38004a0052005a001a42080110011a30add80aaf02559ba0985363'
b'6a0658c42b727cb5bb4ba8acedb4b7fe656065a47a31878dbf9912135ddb9e13806cc1479d220a696d616'
b'7652f6a7065672a5c080110031a404180cc0fa4d3839ee29cca866baed25fafb43fca1eb3b608ee889d35'
b'1d3573d042c7b83e2e643db0d8e062a04e6e9ae6b90540a2f95fe28638d0f18af4361a1c2214f73de93f4'
b'299fb32c32f949e02198a8e91101abd6d7576a914be16e4b0f9bd8f6d47d02b3a887049c36d3b84cb88ac'
)