def run_test(self): n = self.nodes[0] n.generate(200) # waitFor throws on timeout, failing the test waitFor(10, lambda: compare(n, "index_height", n.getblockcount())) waitFor(10, lambda: compare(n, "mempool_count", 0, True)) n.sendtoaddress(n.getnewaddress(), 1) assert_equal(1, len(n.getrawmempool())) waitFor(10, lambda: compare(n, "mempool_count", 1, True)) blocks = n.generate(50) waitFor(10, lambda: compare(n, "index_height", n.getblockcount())) waitFor(10, lambda: compare(n, "mempool_count", 0, True)) logging.info("invalidating %d blocks", len(blocks)) n.invalidateblock(blocks[0]) # electrum server should trim its chain as well and see our # transaction go back into mempool waitFor(10, lambda: compare(n, "index_height", n.getblockcount())) waitFor(10, lambda: compare(n, "mempool_count", 1, True)) n.generate(50) waitFor(10, lambda: compare(n, "index_height", n.getblockcount())) waitFor(10, lambda: compare(n, "mempool_count", 0, True))
def run_test(self): n = self.nodes[0] logging.info("Checking that blocks are indexed") n.generate(200) # waitFor throws on timeout, failing the test waitFor(10, lambda: compare(n, "index_height", n.getblockcount())) waitFor( 10, lambda: compare(n, "index_txns", n.getblockcount() + 1, True)) # +1 is genesis tx waitFor(10, lambda: compare(n, "mempool_count", 0, True)) logging.info("Check that mempool is communicated") n.sendtoaddress(n.getnewaddress(), 1) assert_equal(1, len(n.getrawmempool())) waitFor(10, lambda: compare(n, "mempool_count", 1, True)) n.generate(1) assert_equal(0, len(n.getrawmempool())) waitFor(10, lambda: compare(n, "index_height", n.getblockcount())) waitFor(10, lambda: compare(n, "mempool_count", 0, True)) waitFor(10, lambda: compare(n, "index_txns", n.getblockcount() + 2, True))
def sync_electrs(self, n): waitFor(10, lambda: compare(n, "index_height", n.getblockcount()))