From 400ae85defa0ea9cf0190fe315fc75af4239ed09 Mon Sep 17 00:00:00 2001 From: thunderbiscuit Date: Wed, 3 Jul 2024 15:12:12 -0400 Subject: [PATCH] feat: add compact block filter client temp 2 temp 3 temp 4 pass wallet to builder remove async builder make ip a type, bump bdk-kyoto, add connections add more configurations fix datadir builder bump kyoto add trait bound for logger update logger update bdk-ffi --- bdk-python/tests/test_live_kyoto.py | 54 +++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 bdk-python/tests/test_live_kyoto.py diff --git a/bdk-python/tests/test_live_kyoto.py b/bdk-python/tests/test_live_kyoto.py new file mode 100644 index 00000000..27e139d3 --- /dev/null +++ b/bdk-python/tests/test_live_kyoto.py @@ -0,0 +1,54 @@ +from bdkpython import * +from bdkpython.bitcoin import * +import unittest +import os + +network: Network = Network.SIGNET + +ip: IpAddress = IpAddress.from_ipv4(68, 47, 229, 218) +peer: Peer = Peer(address=ip, port=None, v2_transport=False) + +descriptor: Descriptor = Descriptor( + "wpkh(tprv8ZgxMBicQKsPf2qfrEygW6fdYseJDDrVnDv26PH5BHdvSuG6ecCbHqLVof9yZcMoM31z9ur3tTYbSnr1WBqbGX97CbXcmp5H6qeMpyvx35B/84h/1h/0h/0/*)", + network=network +) +change_descriptor: Descriptor = Descriptor( + "wpkh(tprv8ZgxMBicQKsPf2qfrEygW6fdYseJDDrVnDv26PH5BHdvSuG6ecCbHqLVof9yZcMoM31z9ur3tTYbSnr1WBqbGX97CbXcmp5H6qeMpyvx35B/84h/1h/0h/1/*)", + network=network +) + +class LiveKyotoTest(unittest.IsolatedAsyncioTestCase): + + def tearDown(self) -> None: + if os.path.exists("./bdk_persistence.sqlite"): + os.remove("./bdk_persistence.sqlite") + if os.path.exists("./data/signet/headers.db"): + os.remove("./data/signet/headers.db") + if os.path.exists("./data/signet/peers.db"): + os.remove("./data/signet/peers.db") + + async def testKyoto(self) -> None: + connection: Connection = Connection.new_in_memory() + wallet: Wallet = Wallet( + descriptor, + change_descriptor, + network, + connection + ) + peers = [peer] + node_pair: NodePair = build_light_client(wallet, peers, 1, None, ".") + client: LightClient = node_pair.client + node: LightNode = node_pair.node + run_node(node) + update: Update = await client.update(None) + self.assertIsNotNone(update, "Update is None. This should not be possible.") + wallet.apply_update(update) + self.assertGreater( + wallet.balance().total.to_sat(), + 0, + f"Wallet balance must be greater than 0! Please send funds to {wallet.reveal_next_address(KeychainKind.EXTERNAL).address} and try again." + ) + await client.shutdown() + +if __name__ == "__main__": + unittest.main() \ No newline at end of file