029b87b516090b9dedecb58e515973859e62fcc4
[p2pool.git] / p2pool / test / bitcoin / test_getwork.py
1 import unittest
2
3 from p2pool.bitcoin import getwork, data as bitcoin_data
4
5 class Test(unittest.TestCase):
6     def test_all(self):
7         getwork.BlockAttempt.from_getwork({
8             'target': '0000000000000000000000000000000000000000000000f2b944000000000000',
9             'midstate': '5982f893102dec03e374b472647c4f19b1b6d21ae4b2ac624f3d2f41b9719404',
10             'hash1': '00000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000010000',
11             'data': '0000000163930d52a5ffca79b29b95a659a302cd4e1654194780499000002274000000002e133d9e51f45bc0886d05252038e421e82bff18b67dc14b90d9c3c2f422cd5c4dd4598e1a44b9f200000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000'
12     }, _check=100)
13         getwork.BlockAttempt.from_getwork({
14             'midstate' : 'f4a9b048c0cb9791bc94b13ee0eec21e713963d524fd140b58bb754dd7b0955f',
15             'data' : '000000019a1d7342fb62090bda686b22d90f9f73d0f5c418b9c980cd0000011a00000000680b07c8a2f97ecd831f951806857e09f98a3b81cdef1fa71982934fef8dc3444e18585d1a0abbcf00000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000',
16             'hash1' : '00000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000010000',
17             'target' : '0000000000000000000000000000000000000000000000cfbb0a000000000000',
18             'extrathing': 'hi!',
19         })
20         getwork.BlockAttempt.from_getwork({
21             'data' : '000000019a1d7342fb62090bda686b22d90f9f73d0f5c418b9c980cd0000011a00000000680b07c8a2f97ecd831f951806857e09f98a3b81cdef1fa71982934fef8dc3444e18585d1a0abbcf00000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000',
22             'hash1' : '00000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000010000',
23             'target' : '0000000000000000000000000000000000000000000000cfbb0a000000000000',
24             'extrathing': 'hi!',
25         })
26         ba = getwork.BlockAttempt(
27             1,
28             0x148135e10208db85abb62754341a392eab1f186aab077a831cf7,
29             0x534ea08be1ab529f484369344b6d5423ef5a0767db9b3ebb4e182bbb67962520,
30             1305759879,
31             bitcoin_data.FloatingInteger.from_target_upper_bound(0x44b9f20000000000000000000000000000000000000000000000),
32             0x44b9f20000000000000000000000000000000000000000000000,
33         )
34         ba.getwork(100)
35         ba = getwork.BlockAttempt(
36             1,
37             0x148135e10208db85abb62754341a392eab1f186aab077a831cf7,
38             0x534ea08be1ab529f484369344b6d5423ef5a0767db9b3ebb4e182bbb67962520,
39             1305759879,
40             bitcoin_data.FloatingInteger.from_target_upper_bound(0x44b9f20000000000000000000000000000000000000000000000),
41             432*2**230,
42         )
43         ba.getwork(100)
44         ba = getwork.BlockAttempt(
45             1,
46             0x148135e10208db85abb62754341a392eab1f186aab077a831cf7,
47             0x534ea08be1ab529f484369344b6d5423ef5a0767db9b3ebb4e182bbb67962520,
48             1305759879,
49             bitcoin_data.FloatingInteger.from_target_upper_bound(0x44b9f20000000000000000000000000000000000000000000000),
50             7*2**240,
51         )
52         ba.getwork(100)
53         ba.getwork()
54         ba.getwork(_check=100)
55         ba.update(previous_block=ba.previous_block - 10).getwork(_check=100, ident="hi")