コード例 #1
0
ファイル: test_bitcoin.py プロジェクト: drym3r/electrumfair
    def test_signature_verfication(self):
        point = ser_to_point("04ec775cffb203bf47ef358edf66231e5e4e6f247bdaa93ed789b5d3c7b8f384a93af927b62630afe039d4b159c339766207e7f47fbe92ee4bf21a893fdaf87eae".decode('hex'))
        pubKey = ecdsa.VerifyingKey.from_public_point(point, ecdsa.SECP256k1)

        sig = "304402206b9caba68425b04d6df0e74f520ba2b08b94fcb9064e02f4cf23c1597c9b71ee022042fca1e85dcfa79aa67f62de6361bd73449d159a9535aaaf00dc53e64d01f588".decode('hex')
        blockHash = rev_hex("12878a98fcc0670c229252f59c1b2daac768b159911aba8f9e4f498c2a8b13d8").decode('hex')
        pubKey.verify_digest(sig, blockHash, ecdsa.util.sigdecode_der)
コード例 #2
0
ファイル: test_hashes.py プロジェクト: martexcoin/encompass
    def test_x11(self):
        # dash block 200000
        block_header = '020000007e3aab137b7d64096f20613289197414631bad462e139f445edb030000000000efc89e19be378dc9d2e6f00048611a405acf76f78334cb8504ce119fbade8420ce36af54e4bc181bfcdef446'
        actual_pow_hash = '000000000004d0615ff622ec78457ca211dc63fc9c62cca9d9d9af7206be721b'

        self.assertEqual(
            actual_pow_hash,
            rev_hex(
                coinhash.X11Hash(block_header.decode('hex')).encode('hex')))
コード例 #3
0
ファイル: test_hashes.py プロジェクト: martexcoin/encompass
    def test_scrypt(self):
        # litecoin block 20000
        block_header = '010000006bce902b61adcac03429993a51deaaff5229d21453af96d5a1425ba956edeebec3c4551556f8340cfd54292411a8f2c1d6a4f2444651619fcad4708aefc0c020c6f4a94e678a041d81590000'
        actual_pow_hash = '000000010f3a68cae10585dea46116e5298a83458bd05ab2169829a84ff3ef1e'

        self.assertEqual(
            actual_pow_hash,
            rev_hex(
                coinhash.ScryptHash(block_header.decode('hex')).encode('hex')))
コード例 #4
0
ファイル: test_hashes.py プロジェクト: martexcoin/encompass
    def test_neoscrypt(self):
        # feathercoin block 732700
        raw_block = '0200000082ad0f32d0dca2438ec33dd5eabd612fee6cd28559a37c34cc17a0d813f8b01ff2e7b7179c2b869dde5b5fa516e86187d599a15b05cda223b5407ec2b1ca802a8a946c55ad623f1cca6115000301000000010000000000000000000000000000000000000000000000000000000000000000ffffffff2d031c2e0b062f503253482f048a946c55086800169235000000132f474956452d4d452d434f494e532e636f6d2f0000000001a0d6d7dc010000001976a914cfd4166bf463109717ef6bda95a01c40e0ab9ba288ac000000000100000001e920ef6dd0f2395d6cb829f3b2a99dc067ede1bffbf57bb58622b65c9b1dd5f8000000006c493046022100b8b2cd44ae056b84bf9c3a887347af64d6974dba25e181f68a1db74a451c67bb0221008c8bcc2b001faf3c23fcd6064368afc1ca91000959e8759d26a701aced7cf6d40121038c3c33640db4a025f3ebefe5f3b705708236f5104b29d4a1eb60971d58d931c3ffffffff036dcf2719010000001976a914b6dabc407e13cfb474713c9c96e13a2f6c7d1b2888ac8379ce3d000000001976a91484b09afa67a69fc5ffa90e27359acde0b7309cb988ac1007e085000000001976a9145cbe3c20de96194fef74df5b5d9da6b5643b92cb88ac000000000100000001df8fed0c1602f3e57ef586a491f673bbd124c3751bd783effb9f2a3259b98f43010000006b4830450220375b6508a97f2d080b8bd380830565216e54d05f2e89fda96beb22e9624c2811022100e836367122271516dc43f34e88a4e1a2e14cc6263ba144ee83abf5bb7ec0d20f012102e355f533557054cd9df7465e762c9bb71ec85febe844acf12d83db4caf4f9408ffffffff021295e437000000001976a914545b159ee0c7593a4ccd79714caf08fe1b58cee388ac1c7a0f00000000001976a914a4af10954d9fd6556ed7e6d3d8b927bcac1cce4688ac00000000'
        actual_pow_hash = '00000000194b59f845a26aa4be535d6f645c502999b932faf62e9d4300c14bf5'

        self.assertEqual(
            actual_pow_hash,
            rev_hex(
                coinhash.NeoscryptHash(raw_block.decode('hex')).encode('hex')))
コード例 #5
0
ファイル: test_hashes.py プロジェクト: martexcoin/encompass
    def test_sha256d(self):
        # bitcoin block 100000
        block_header = '0100000050120119172a610421a6c3011dd330d9df07b63616c2cc1f1cd00200000000006657a9252aacd5c0b2940996ecff952228c3067cc38d4885efb5a4ac4247e9f337221b4d4c86041b0f2b5710'
        actual_pow_hash = '000000000003ba27aa200b1cecaad478d2b00432346c3f1f3986da1afd33e506'

        self.assertEqual(
            actual_pow_hash,
            rev_hex(
                coinhash.SHA256dHash(
                    block_header.decode('hex')).encode('hex')))
コード例 #6
0
ファイル: test_hashes.py プロジェクト: martexcoin/encompass
    def test_groestl(self):
        # groestlcoin block 300000
        block_header = '70000000f16294cc9ddf97d62ea373831410aef4118046ed4b8e176e05fd730e0000000009b85cf20e75305ed1b661ef17edb8ff510b352b08bdb5b2831193cd99076799ebf33b540272101c78a6eb00'
        actual_pow_hash = '0000000006578229b1483120424c209574fb8d5b7f900b52362b2627a716bf9f'

        self.assertEqual(
            actual_pow_hash,
            rev_hex(
                coinhash.GroestlHash(
                    block_header.decode('hex')).encode('hex')))
コード例 #7
0
 def test_scrypt(self):
     #0200000011f1fe21e0b66dc214be46366465cb95d29830e31ddd225a11349a836a993bf7b5db36b3e5593d039779bff204d132b65ee029a2e499ebeb5a4b19cbe862eee2b623cc5276676c1c000e1c60
     header = {
         'block_height': 12095,
         'nonce': 1612451328,
         'timestamp': 1389110198,
         'version': 2,
         'prev_block_hash':
         'f73b996a839a34115a22dd1de33098d295cb65643646be14c26db6e021fef111',
         'merkle_root':
         'e2ee62e8cb194b5aebeb99e4a229e05eb632d104f2bf7997033d59e5b336dbb5',
         'bits': 476866422
     }
     powhash = rev_hex(bh2u(scryptGetHash(bfh(serialize_header(header)))))
     self.assertEqual(
         powhash,
         '00000000335c88172421df73a1c1f22f4d7c23d8ef34c78d728c4eff3ba24a34')
コード例 #8
0
 def test_hash_block(self):
     raw_header = '030000001a12ed8fe3b2abe61161c3171f20a4dff83e721298934943ff86170000000000972b51909e1911b9d4462a448cfb14b6d3d2e25151eb75b3e0f252f39a84d22ac4d2fd55e85b1d1b116e56de'
     header_hash = rev_hex(PoWHash(raw_header.decode('hex')).encode('hex'))
     self.assertEqual('000000000008aba1c6b076ba5f147b39007cb1f9c34398960edc7c9d1edf8ad7', header_hash)
コード例 #9
0
ファイル: test_hashes.py プロジェクト: martexcoin/encompass
    def test_sha256d(self):
        # bitcoin block 100000
        block_header = '0100000050120119172a610421a6c3011dd330d9df07b63616c2cc1f1cd00200000000006657a9252aacd5c0b2940996ecff952228c3067cc38d4885efb5a4ac4247e9f337221b4d4c86041b0f2b5710'
        actual_pow_hash = '000000000003ba27aa200b1cecaad478d2b00432346c3f1f3986da1afd33e506'

        self.assertEqual(actual_pow_hash, rev_hex(coinhash.SHA256dHash(block_header.decode('hex')).encode('hex')))
コード例 #10
0
ファイル: test_hashes.py プロジェクト: martexcoin/encompass
    def test_groestl(self):
        # groestlcoin block 300000
        block_header = '70000000f16294cc9ddf97d62ea373831410aef4118046ed4b8e176e05fd730e0000000009b85cf20e75305ed1b661ef17edb8ff510b352b08bdb5b2831193cd99076799ebf33b540272101c78a6eb00'
        actual_pow_hash = '0000000006578229b1483120424c209574fb8d5b7f900b52362b2627a716bf9f'

        self.assertEqual(actual_pow_hash, rev_hex(coinhash.GroestlHash(block_header.decode('hex')).encode('hex')))
コード例 #11
0
ファイル: test_hashes.py プロジェクト: martexcoin/encompass
    def test_x11(self):
        # dash block 200000
        block_header = '020000007e3aab137b7d64096f20613289197414631bad462e139f445edb030000000000efc89e19be378dc9d2e6f00048611a405acf76f78334cb8504ce119fbade8420ce36af54e4bc181bfcdef446'
        actual_pow_hash = '000000000004d0615ff622ec78457ca211dc63fc9c62cca9d9d9af7206be721b'

        self.assertEqual(actual_pow_hash, rev_hex(coinhash.X11Hash(block_header.decode('hex')).encode('hex')))
コード例 #12
0
ファイル: test_hashes.py プロジェクト: martexcoin/encompass
    def test_scrypt(self):
        # litecoin block 20000
        block_header = '010000006bce902b61adcac03429993a51deaaff5229d21453af96d5a1425ba956edeebec3c4551556f8340cfd54292411a8f2c1d6a4f2444651619fcad4708aefc0c020c6f4a94e678a041d81590000'
        actual_pow_hash = '000000010f3a68cae10585dea46116e5298a83458bd05ab2169829a84ff3ef1e'

        self.assertEqual(actual_pow_hash, rev_hex(coinhash.ScryptHash(block_header.decode('hex')).encode('hex')))
コード例 #13
0
ファイル: test_hashes.py プロジェクト: martexcoin/encompass
    def test_neoscrypt(self):
        # feathercoin block 732700
        raw_block = '0200000082ad0f32d0dca2438ec33dd5eabd612fee6cd28559a37c34cc17a0d813f8b01ff2e7b7179c2b869dde5b5fa516e86187d599a15b05cda223b5407ec2b1ca802a8a946c55ad623f1cca6115000301000000010000000000000000000000000000000000000000000000000000000000000000ffffffff2d031c2e0b062f503253482f048a946c55086800169235000000132f474956452d4d452d434f494e532e636f6d2f0000000001a0d6d7dc010000001976a914cfd4166bf463109717ef6bda95a01c40e0ab9ba288ac000000000100000001e920ef6dd0f2395d6cb829f3b2a99dc067ede1bffbf57bb58622b65c9b1dd5f8000000006c493046022100b8b2cd44ae056b84bf9c3a887347af64d6974dba25e181f68a1db74a451c67bb0221008c8bcc2b001faf3c23fcd6064368afc1ca91000959e8759d26a701aced7cf6d40121038c3c33640db4a025f3ebefe5f3b705708236f5104b29d4a1eb60971d58d931c3ffffffff036dcf2719010000001976a914b6dabc407e13cfb474713c9c96e13a2f6c7d1b2888ac8379ce3d000000001976a91484b09afa67a69fc5ffa90e27359acde0b7309cb988ac1007e085000000001976a9145cbe3c20de96194fef74df5b5d9da6b5643b92cb88ac000000000100000001df8fed0c1602f3e57ef586a491f673bbd124c3751bd783effb9f2a3259b98f43010000006b4830450220375b6508a97f2d080b8bd380830565216e54d05f2e89fda96beb22e9624c2811022100e836367122271516dc43f34e88a4e1a2e14cc6263ba144ee83abf5bb7ec0d20f012102e355f533557054cd9df7465e762c9bb71ec85febe844acf12d83db4caf4f9408ffffffff021295e437000000001976a914545b159ee0c7593a4ccd79714caf08fe1b58cee388ac1c7a0f00000000001976a914a4af10954d9fd6556ed7e6d3d8b927bcac1cce4688ac00000000'
        actual_pow_hash = '00000000194b59f845a26aa4be535d6f645c502999b932faf62e9d4300c14bf5'

        self.assertEqual(actual_pow_hash, rev_hex(coinhash.NeoscryptHash(raw_block.decode('hex')).encode('hex')))
コード例 #14
0
 def test_hash_block(self):
     raw_header = '030000001a12ed8fe3b2abe61161c3171f20a4dff83e721298934943ff86170000000000972b51909e1911b9d4462a448cfb14b6d3d2e25151eb75b3e0f252f39a84d22ac4d2fd55e85b1d1b116e56de'
     header_hash = rev_hex(PoWHash(raw_header.decode('hex')).encode('hex'))
     self.assertEqual('000000000008aba1c6b076ba5f147b39007cb1f9c34398960edc7c9d1edf8ad7', header_hash)