Ejemplo n.º 1
0
    def test_wif_encoding(self):
        active_chain = chainparams.get_active_chain()
        wif = bitcoin.SecretToASecret(self.privkey,
                                      compressed=True,
                                      addrtype=active_chain.wif_version)
        self.assertEqual(
            'L3PoHZXjsvP91C8WuyiwzYKgjzthZD2Q39Wzrwfsndov6Cwcu8zX', wif)

        addr = bitcoin.address_from_private_key(
            wif,
            addrtype=active_chain.p2pkh_version,
            wif_version=active_chain.wif_version)
        self.assertEqual('1599aBMAHbgEkf4dzvd9jxBFgVyufZVVc1', addr)

        chainparams.set_active_chain('MZC')
        active_chain = chainparams.get_active_chain()
        wif = bitcoin.SecretToASecret(self.privkey,
                                      compressed=True,
                                      addrtype=active_chain.wif_version)
        self.assertEqual(
            'aF4LB486ggLLYsQG1FcgRFQSdiBKhP4BfZKWaYvxvaAF7z6MGkAG', wif)

        addr = bitcoin.address_from_private_key(
            wif,
            addrtype=active_chain.p2pkh_version,
            wif_version=active_chain.wif_version)
        self.assertEqual('MC3JocFZncr3eL2yDuH5zDnb9is5GUzUJv', addr)
Ejemplo n.º 2
0
 def test_deserialize(self):
     chainparams.set_active_chain("BTC")
     # some random tx
     rawtx = '010000000198fb6f1c46eb0416b6a91bc9d0b8dfa554a96b23f00070f430bbf6d05b26ea16010000006c493046022100d00ff7bb2e9d41ef200ceb2fd874468b09a21e549ead6f2a74f35ad02ce25df8022100b1307da37c806ae638502c60d0ebbbe6da2ae9bb03f8798953059269e0ef3b46012102e7d08484e6c4c26bd2a3aabab09c65bbdcb4a6bba0ee5cf7008ef19b9540f818ffffffff0200743ba40b0000001976a91429a158767437cd82ccf4bd3e34ecd16c267fc36388aca0c01319180000001976a9140b31340661bb7a4165736ca2fc6509164b1dc96488ac00000000'
     tx = deserialize(rawtx, chainparams.get_active_chain())
     self.assertEqual(tx['version'], 1)
     # inputs
     self.assertEqual(len(tx['inputs']), 1)
     first_in = tx['inputs'][0]
     self.assertEqual(first_in['is_coinbase'], False)
     self.assertEqual(first_in['prevout_hash'], '16ea265bd0f6bb30f47000f0236ba954a5dfb8d0c91ba9b61604eb461c6ffb98')
     self.assertEqual(first_in['prevout_n'], 1)
     self.assertEqual(first_in['num_sig'], 1)
     self.assertEqual(first_in['pubkeys'], ['02e7d08484e6c4c26bd2a3aabab09c65bbdcb4a6bba0ee5cf7008ef19b9540f818'])
     self.assertEqual(first_in['signatures'], ['3046022100d00ff7bb2e9d41ef200ceb2fd874468b09a21e549ead6f2a74f35ad02ce25df8022100b1307da37c806ae638502c60d0ebbbe6da2ae9bb03f8798953059269e0ef3b46'])
     self.assertEqual(first_in['sequence'], 4294967295)
     # outputs
     self.assertEqual(len(tx['outputs']), 2)
     # output 1
     first_out = tx['outputs'][0]
     self.assertEqual(first_out['address'], '14o7zMMUJkG6De24r3JkJ6USgChq7iWF86')
     self.assertEqual(first_out['prevout_n'], 0)
     self.assertEqual(first_out['scriptPubKey'], '76a91429a158767437cd82ccf4bd3e34ecd16c267fc36388ac')
     self.assertEqual(first_out['type'], 'address')
     self.assertEqual(first_out['value'], 50000000000)
     # output 2
     second_out = tx['outputs'][1]
     self.assertEqual(second_out['address'], '122BNoyhmuUt9G9mdEm3mN4nb73c1UgNKt')
     self.assertEqual(second_out['prevout_n'], 1)
     self.assertEqual(second_out['scriptPubKey'], '76a9140b31340661bb7a4165736ca2fc6509164b1dc96488ac')
     self.assertEqual(second_out['type'], 'address')
     self.assertEqual(second_out['value'], 103499940000)
     # locktime
     self.assertEqual(tx['lockTime'], 0)
Ejemplo n.º 3
0
 def set_active_chain_code(self, value, save=True):
     value = value.upper()
     if not chainparams.is_known_chain(value):
         return False
     self.store['active_chain_code'] = value
     if self.store.get(value,None) is None:
         self.store[value] = {}
     chainparams.set_active_chain(value)
     return True
Ejemplo n.º 4
0
 def set_active_chain_code(self, value, save=True):
     value = value.upper()
     if not chainparams.is_known_chain(value):
         return False
     self.store['active_chain_code'] = value
     if self.store.get(value, None) is None:
         self.store[value] = {}
     chainparams.set_active_chain(value)
     return True
Ejemplo n.º 5
0
 def test_peercoin_deserialize(self):
     chainparams.set_active_chain('PPC')
     rawtx = '0100000058e4615501a367e883a383167e64c84e9c068ba5c091672e434784982f877eede589cb7e53000000006a473044022043b9aee9187effd7e6c7bc444b09162570f17e36b4a9c02cf722126cc0efa3d502200b3ba14c809fa9a6f7f835cbdbbb70f2f43f6b30beaf91eec6b8b5981c80cea50121025edf500f18f9f2b3f175f823fa996fbb2ec52982a9aeb1dc2e388a651054fb0fffffffff0257be0100000000001976a91495efca2c6a6f0e0f0ce9530219b48607a962e77788ac45702000000000001976a914f28abfb465126d6772dcb4403b9e1ad2ea28a03488ac00000000'
     tx = deserialize(rawtx, chainparams.get_active_chain())
     self.assertEqual(tx['version'], 1)
     self.assertEqual(len(tx['inputs']), 1)
     self.assertEqual(len(tx['outputs']), 2)
     self.assertEqual(tx['lockTime'], 0)
     self.assertEqual(tx['timestamp'], 1432478808)
Ejemplo n.º 6
0
 def test_peercoin_deserialize(self):
     chainparams.set_active_chain('PPC')
     rawtx = '0100000058e4615501a367e883a383167e64c84e9c068ba5c091672e434784982f877eede589cb7e53000000006a473044022043b9aee9187effd7e6c7bc444b09162570f17e36b4a9c02cf722126cc0efa3d502200b3ba14c809fa9a6f7f835cbdbbb70f2f43f6b30beaf91eec6b8b5981c80cea50121025edf500f18f9f2b3f175f823fa996fbb2ec52982a9aeb1dc2e388a651054fb0fffffffff0257be0100000000001976a91495efca2c6a6f0e0f0ce9530219b48607a962e77788ac45702000000000001976a914f28abfb465126d6772dcb4403b9e1ad2ea28a03488ac00000000'
     tx = deserialize(rawtx, chainparams.get_active_chain())
     self.assertEqual(tx['version'], 1)
     self.assertEqual(len(tx['inputs']), 1)
     self.assertEqual(len(tx['outputs']), 2)
     self.assertEqual(tx['lockTime'], 0)
     self.assertEqual(tx['timestamp'], 1432478808)
Ejemplo n.º 7
0
 def test_get_chainparam(self):
     chainparams.set_active_chain('MZC')
     self.assertEqual('Mazacoin',
                      chainparams.get_chainparam('MZC', 'coin_name'))
     self.assertEqual('mazacoin',
                      chainparams.get_chainparam('MZC', 'module_name'))
     self.assertEqual('Bitcoin',
                      chainparams.get_chainparam('BTC', 'coin_name'))
     self.assertEqual('bitcoin',
                      chainparams.get_chainparam('BTC', 'module_name'))
Ejemplo n.º 8
0
    def test_get_params(self):
        chainparams.set_active_chain('MZC')
        params = chainparams.get_params('MZC')
        self.assertEqual(13, params.chain_index)
        self.assertEqual('Mazacoin', params.coin_name)
        self.assertEqual('MZC', params.code)
        self.assertEqual('mazacoin', params.module_name)

        params = chainparams.get_params('BTC')
        self.assertEqual(0, params.chain_index)
        self.assertEqual('Bitcoin', params.coin_name)
        self.assertEqual('BTC', params.code)
        self.assertEqual('bitcoin', params.module_name)
Ejemplo n.º 9
0
    def test_wif_encoding(self):
        active_chain = chainparams.get_active_chain()
        wif = bitcoin.SecretToASecret(self.privkey, compressed=True, addrtype = active_chain.wif_version)
        self.assertEqual('L3PoHZXjsvP91C8WuyiwzYKgjzthZD2Q39Wzrwfsndov6Cwcu8zX', wif)

        addr = bitcoin.address_from_private_key(wif, addrtype = active_chain.p2pkh_version, wif_version = active_chain.wif_version)
        self.assertEqual('1599aBMAHbgEkf4dzvd9jxBFgVyufZVVc1', addr)

        chainparams.set_active_chain('MZC')
        active_chain = chainparams.get_active_chain()
        wif = bitcoin.SecretToASecret(self.privkey, compressed=True, addrtype = active_chain.wif_version)
        self.assertEqual('aF4LB486ggLLYsQG1FcgRFQSdiBKhP4BfZKWaYvxvaAF7z6MGkAG', wif)

        addr = bitcoin.address_from_private_key(wif, addrtype = active_chain.p2pkh_version, wif_version = active_chain.wif_version)
        self.assertEqual('MC3JocFZncr3eL2yDuH5zDnb9is5GUzUJv', addr)
Ejemplo n.º 10
0
    def test_get_active_chain(self):
        chainparams.set_active_chain('MZC')
        chain = chainparams.get_active_chain()
        self.assertEqual(13, chain.chain_index)
        self.assertEqual('Mazacoin', chain.coin_name)
        self.assertEqual('MZC', chain.code)
        self.assertEqual(50, chain.p2pkh_version)
        self.assertEqual(9, chain.p2sh_version)
        self.assertEqual(224, chain.wif_version)

        chainparams.set_active_chain('BTC')
        chain = chainparams.get_active_chain()
        self.assertEqual(0, chain.chain_index)
        self.assertEqual('Bitcoin', chain.coin_name)
        self.assertEqual('BTC', chain.code)
        self.assertEqual(0, chain.p2pkh_version)
        self.assertEqual(5, chain.p2sh_version)
        self.assertEqual(128, chain.wif_version)
Ejemplo n.º 11
0
 def test_deserialize(self):
     chainparams.set_active_chain("BTC")
     # some random tx
     rawtx = '010000000198fb6f1c46eb0416b6a91bc9d0b8dfa554a96b23f00070f430bbf6d05b26ea16010000006c493046022100d00ff7bb2e9d41ef200ceb2fd874468b09a21e549ead6f2a74f35ad02ce25df8022100b1307da37c806ae638502c60d0ebbbe6da2ae9bb03f8798953059269e0ef3b46012102e7d08484e6c4c26bd2a3aabab09c65bbdcb4a6bba0ee5cf7008ef19b9540f818ffffffff0200743ba40b0000001976a91429a158767437cd82ccf4bd3e34ecd16c267fc36388aca0c01319180000001976a9140b31340661bb7a4165736ca2fc6509164b1dc96488ac00000000'
     tx = deserialize(rawtx, chainparams.get_active_chain())
     self.assertEqual(tx['version'], 1)
     # inputs
     self.assertEqual(len(tx['inputs']), 1)
     first_in = tx['inputs'][0]
     self.assertEqual(first_in['is_coinbase'], False)
     self.assertEqual(
         first_in['prevout_hash'],
         '16ea265bd0f6bb30f47000f0236ba954a5dfb8d0c91ba9b61604eb461c6ffb98')
     self.assertEqual(first_in['prevout_n'], 1)
     self.assertEqual(first_in['num_sig'], 1)
     self.assertEqual(first_in['pubkeys'], [
         '02e7d08484e6c4c26bd2a3aabab09c65bbdcb4a6bba0ee5cf7008ef19b9540f818'
     ])
     self.assertEqual(first_in['signatures'], [
         '3046022100d00ff7bb2e9d41ef200ceb2fd874468b09a21e549ead6f2a74f35ad02ce25df8022100b1307da37c806ae638502c60d0ebbbe6da2ae9bb03f8798953059269e0ef3b46'
     ])
     self.assertEqual(first_in['sequence'], 4294967295)
     # outputs
     self.assertEqual(len(tx['outputs']), 2)
     # output 1
     first_out = tx['outputs'][0]
     self.assertEqual(first_out['address'],
                      '14o7zMMUJkG6De24r3JkJ6USgChq7iWF86')
     self.assertEqual(first_out['prevout_n'], 0)
     self.assertEqual(first_out['scriptPubKey'],
                      '76a91429a158767437cd82ccf4bd3e34ecd16c267fc36388ac')
     self.assertEqual(first_out['type'], 'address')
     self.assertEqual(first_out['value'], 50000000000)
     # output 2
     second_out = tx['outputs'][1]
     self.assertEqual(second_out['address'],
                      '122BNoyhmuUt9G9mdEm3mN4nb73c1UgNKt')
     self.assertEqual(second_out['prevout_n'], 1)
     self.assertEqual(second_out['scriptPubKey'],
                      '76a9140b31340661bb7a4165736ca2fc6509164b1dc96488ac')
     self.assertEqual(second_out['type'], 'address')
     self.assertEqual(second_out['value'], 103499940000)
     # locktime
     self.assertEqual(tx['lockTime'], 0)
Ejemplo n.º 12
0
 def test_serialize(self):
     chainparams.set_active_chain('BTC')
     rawtx = '010000000198fb6f1c46eb0416b6a91bc9d0b8dfa554a96b23f00070f430bbf6d05b26ea16010000006c493046022100d00ff7bb2e9d41ef200ceb2fd874468b09a21e549ead6f2a74f35ad02ce25df8022100b1307da37c806ae638502c60d0ebbbe6da2ae9bb03f8798953059269e0ef3b46012102e7d08484e6c4c26bd2a3aabab09c65bbdcb4a6bba0ee5cf7008ef19b9540f818ffffffff0200743ba40b0000001976a91429a158767437cd82ccf4bd3e34ecd16c267fc36388aca0c01319180000001976a9140b31340661bb7a4165736ca2fc6509164b1dc96488ac00000000'
     tx = Transaction.deserialize(rawtx, chainparams.get_active_chain())
     self.assertEqual(str(tx), rawtx)
Ejemplo n.º 13
0
 def setUp(self):
     super(TestTransaction, self).setUp()
     chainparams.set_active_chain('BTC')
Ejemplo n.º 14
0
 def test_serialize(self):
     chainparams.set_active_chain('BTC')
     rawtx = '010000000198fb6f1c46eb0416b6a91bc9d0b8dfa554a96b23f00070f430bbf6d05b26ea16010000006c493046022100d00ff7bb2e9d41ef200ceb2fd874468b09a21e549ead6f2a74f35ad02ce25df8022100b1307da37c806ae638502c60d0ebbbe6da2ae9bb03f8798953059269e0ef3b46012102e7d08484e6c4c26bd2a3aabab09c65bbdcb4a6bba0ee5cf7008ef19b9540f818ffffffff0200743ba40b0000001976a91429a158767437cd82ccf4bd3e34ecd16c267fc36388aca0c01319180000001976a9140b31340661bb7a4165736ca2fc6509164b1dc96488ac00000000'
     tx = Transaction.deserialize(rawtx, chainparams.get_active_chain())
     self.assertEqual(str(tx), rawtx)
Ejemplo n.º 15
0
 def setUp(self):
     super(TestScript, self).setUp()
     chainparams.set_active_chain('BTC')
Ejemplo n.º 16
0
 def setUp(self):
     super(ChainsBase58Test, self).setUp()
     chainparams.set_active_chain('BTC')
Ejemplo n.º 17
0
 def test_get_chainparam(self):
     chainparams.set_active_chain('MZC')
     self.assertEqual('Mazacoin', chainparams.get_chainparam('MZC', 'coin_name'))
     self.assertEqual('mazacoin', chainparams.get_chainparam('MZC', 'module_name'))
     self.assertEqual('Bitcoin', chainparams.get_chainparam('BTC', 'coin_name'))
     self.assertEqual('bitcoin', chainparams.get_chainparam('BTC', 'module_name'))
Ejemplo n.º 18
0
import shutil
import tempfile
import sys
import unittest
import os
import json

from StringIO import StringIO
from lib.wallet import WalletStorage, NewWallet
from lib import chainparams

if chainparams.get_active_chain() is None:
    chainparams.set_active_chain('BTC')


class FakeConfig(object):
    """A stub config file to be used in tests"""
    def __init__(self, path):
        self.path = path
        self.store = {}

    def set(self, key, value):
        self.store[key] = value

    def get(self, key, default=None):
        return self.store.get(key, default)

    def get_above_chain(self, key, default=None):
        return self.store.get(key, default)

Ejemplo n.º 19
0
 def setUp(self):
     chainparams.set_active_chain("BTC")
Ejemplo n.º 20
0
 def setUp(self):
     super(ChainsBase58Test, self).setUp()
     chainparams.set_active_chain("BTC")
Ejemplo n.º 21
0
 def test_get_code_from_index(self):
     chainparams.set_active_chain('MZC')
     code = chainparams.get_code_from_index(13)
     self.assertEqual('MZC', code)
     code = chainparams.get_code_from_index(0)
     self.assertEqual('BTC', code)
Ejemplo n.º 22
0
 def test_get_chain_index(self):
     chainparams.set_active_chain('MZC')
     index = chainparams.get_chain_index('MZC')
     self.assertEqual(13, index)
     index = chainparams.get_chain_index('BTC')
     self.assertEqual(0, index)
Ejemplo n.º 23
0
 def setUp(self):
     super(TestScript, self).setUp()
     chainparams.set_active_chain('BTC')
Ejemplo n.º 24
0
 def test_set_active_chain(self):
     chainparams.set_active_chain('MZC')
Ejemplo n.º 25
0
 def setUp(self):
     super(TestTransaction, self).setUp()
     chainparams.set_active_chain('BTC')
Ejemplo n.º 26
0
 def setUp(self):
     super(ChainParamsTestCase, self).setUp()
     chainparams.set_active_chain('BTC')