|
|
|
@ -6,6 +6,10 @@
@@ -6,6 +6,10 @@
|
|
|
|
|
|
|
|
|
|
Test the following RPCs: |
|
|
|
|
- gettxoutsetinfo |
|
|
|
|
- getdifficulty |
|
|
|
|
- getbestblockhash |
|
|
|
|
- getblockhash |
|
|
|
|
- getblockheader |
|
|
|
|
- verifychain |
|
|
|
|
|
|
|
|
|
Tests correspond to code in rpc/blockchain.cpp. |
|
|
|
@ -40,6 +44,7 @@ class BlockchainTest(BitcoinTestFramework):
@@ -40,6 +44,7 @@ class BlockchainTest(BitcoinTestFramework):
|
|
|
|
|
def run_test(self): |
|
|
|
|
self._test_gettxoutsetinfo() |
|
|
|
|
self._test_getblockheader() |
|
|
|
|
self._test_getdifficulty() |
|
|
|
|
self.nodes[0].verifychain(4, 0) |
|
|
|
|
|
|
|
|
|
def _test_gettxoutsetinfo(self): |
|
|
|
@ -57,7 +62,8 @@ class BlockchainTest(BitcoinTestFramework):
@@ -57,7 +62,8 @@ class BlockchainTest(BitcoinTestFramework):
|
|
|
|
|
def _test_getblockheader(self): |
|
|
|
|
node = self.nodes[0] |
|
|
|
|
|
|
|
|
|
assert_raises_jsonrpc(-5, "Block not found", node.getblockheader, "nonsense") |
|
|
|
|
assert_raises_jsonrpc(-5, "Block not found", |
|
|
|
|
node.getblockheader, "nonsense") |
|
|
|
|
|
|
|
|
|
besthash = node.getbestblockhash() |
|
|
|
|
secondbesthash = node.getblockhash(199) |
|
|
|
@ -79,5 +85,11 @@ class BlockchainTest(BitcoinTestFramework):
@@ -79,5 +85,11 @@ class BlockchainTest(BitcoinTestFramework):
|
|
|
|
|
assert isinstance(int(header['versionHex'], 16), int) |
|
|
|
|
assert isinstance(header['difficulty'], Decimal) |
|
|
|
|
|
|
|
|
|
def _test_getdifficulty(self): |
|
|
|
|
difficulty = self.nodes[0].getdifficulty() |
|
|
|
|
# 1 hash in 2 should be valid, so difficulty should be 1/2**31 |
|
|
|
|
# binary => decimal => binary math is why we do this check |
|
|
|
|
assert abs(difficulty * 2**31 - 1) < 0.0001 |
|
|
|
|
|
|
|
|
|
if __name__ == '__main__': |
|
|
|
|
BlockchainTest().main() |
|
|
|
|