chia-blockchain 2.5.0rc2__py3-none-any.whl → 2.5.1rc2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (637) hide show
  1. chia/_tests/README.md +1 -1
  2. chia/_tests/blockchain/blockchain_test_utils.py +24 -26
  3. chia/_tests/blockchain/test_augmented_chain.py +6 -8
  4. chia/_tests/blockchain/test_blockchain.py +409 -307
  5. chia/_tests/blockchain/test_blockchain_transactions.py +56 -75
  6. chia/_tests/blockchain/test_build_chains.py +11 -13
  7. chia/_tests/blockchain/test_get_block_generator.py +8 -8
  8. chia/_tests/blockchain/test_lookup_fork_chain.py +3 -4
  9. chia/_tests/build-init-files.py +3 -4
  10. chia/_tests/build-job-matrix.py +9 -9
  11. chia/_tests/check_sql_statements.py +2 -3
  12. chia/_tests/clvm/benchmark_costs.py +1 -1
  13. chia/_tests/clvm/coin_store.py +7 -5
  14. chia/_tests/clvm/test_chialisp_deserialization.py +8 -8
  15. chia/_tests/clvm/test_condition_codes.py +2 -2
  16. chia/_tests/clvm/test_curry_and_treehash.py +2 -4
  17. chia/_tests/clvm/test_message_conditions.py +184 -0
  18. chia/_tests/clvm/test_puzzle_compression.py +1 -2
  19. chia/_tests/clvm/test_puzzle_drivers.py +3 -3
  20. chia/_tests/clvm/test_puzzles.py +13 -18
  21. chia/_tests/clvm/test_singletons.py +17 -17
  22. chia/_tests/clvm/test_spend_sim.py +7 -7
  23. chia/_tests/cmds/cmd_test_utils.py +42 -45
  24. chia/_tests/cmds/conftest.py +2 -2
  25. chia/_tests/cmds/test_click_types.py +21 -16
  26. chia/_tests/cmds/test_cmd_framework.py +255 -35
  27. chia/_tests/cmds/test_cmds_util.py +2 -2
  28. chia/_tests/cmds/test_daemon.py +3 -3
  29. chia/_tests/cmds/test_dev_gh.py +131 -0
  30. chia/_tests/cmds/test_farm_cmd.py +1 -2
  31. chia/_tests/cmds/test_show.py +6 -6
  32. chia/_tests/cmds/test_tx_config_args.py +2 -1
  33. chia/_tests/cmds/wallet/test_dao.py +23 -23
  34. chia/_tests/cmds/wallet/test_did.py +29 -29
  35. chia/_tests/cmds/wallet/test_nft.py +24 -23
  36. chia/_tests/cmds/wallet/test_notifications.py +8 -8
  37. chia/_tests/cmds/wallet/test_tx_decorators.py +3 -3
  38. chia/_tests/cmds/wallet/test_vcs.py +97 -73
  39. chia/_tests/cmds/wallet/test_wallet.py +74 -75
  40. chia/_tests/cmds/wallet/test_wallet_check.py +5 -7
  41. chia/_tests/conftest.py +153 -38
  42. chia/_tests/connection_utils.py +7 -6
  43. chia/_tests/core/cmds/test_beta.py +3 -3
  44. chia/_tests/core/cmds/test_keys.py +6 -6
  45. chia/_tests/core/cmds/test_wallet.py +3 -3
  46. chia/_tests/core/consensus/test_block_creation.py +3 -5
  47. chia/_tests/core/custom_types/test_coin.py +1 -3
  48. chia/_tests/core/custom_types/test_spend_bundle.py +3 -4
  49. chia/_tests/core/daemon/test_daemon.py +58 -58
  50. chia/_tests/core/daemon/test_keychain_proxy.py +2 -1
  51. chia/_tests/core/data_layer/conftest.py +4 -3
  52. chia/_tests/core/data_layer/test_data_cli.py +1 -2
  53. chia/_tests/core/data_layer/test_data_layer.py +5 -5
  54. chia/_tests/core/data_layer/test_data_layer_util.py +8 -9
  55. chia/_tests/core/data_layer/test_data_rpc.py +75 -93
  56. chia/_tests/core/data_layer/test_data_store.py +38 -37
  57. chia/_tests/core/data_layer/test_data_store_schema.py +11 -11
  58. chia/_tests/core/data_layer/util.py +11 -10
  59. chia/_tests/core/farmer/test_farmer_api.py +6 -4
  60. chia/_tests/core/full_node/full_sync/test_full_sync.py +5 -10
  61. chia/_tests/core/full_node/ram_db.py +2 -2
  62. chia/_tests/core/full_node/stores/test_block_store.py +113 -11
  63. chia/_tests/core/full_node/stores/test_coin_store.py +37 -28
  64. chia/_tests/core/full_node/stores/test_full_node_store.py +34 -30
  65. chia/_tests/core/full_node/stores/test_hint_store.py +3 -4
  66. chia/_tests/core/full_node/test_address_manager.py +2 -2
  67. chia/_tests/core/full_node/test_block_height_map.py +1 -1
  68. chia/_tests/core/full_node/test_conditions.py +10 -12
  69. chia/_tests/core/full_node/test_full_node.py +2077 -1822
  70. chia/_tests/core/full_node/test_generator_tools.py +4 -4
  71. chia/_tests/core/full_node/test_hint_management.py +2 -2
  72. chia/_tests/core/full_node/test_performance.py +2 -5
  73. chia/_tests/core/full_node/test_subscriptions.py +4 -4
  74. chia/_tests/core/full_node/test_tx_processing_queue.py +5 -4
  75. chia/_tests/core/make_block_generator.py +5 -7
  76. chia/_tests/core/mempool/test_mempool.py +205 -208
  77. chia/_tests/core/mempool/test_mempool_fee_protocol.py +5 -5
  78. chia/_tests/core/mempool/test_mempool_item_queries.py +2 -4
  79. chia/_tests/core/mempool/test_mempool_manager.py +109 -80
  80. chia/_tests/core/mempool/test_mempool_performance.py +3 -4
  81. chia/_tests/core/mempool/test_singleton_fast_forward.py +12 -12
  82. chia/_tests/core/server/flood.py +6 -4
  83. chia/_tests/core/server/serve.py +10 -7
  84. chia/_tests/core/server/test_api_protocol.py +21 -0
  85. chia/_tests/core/server/test_capabilities.py +3 -5
  86. chia/_tests/core/server/test_dos.py +15 -16
  87. chia/_tests/core/server/test_loop.py +14 -10
  88. chia/_tests/core/server/test_node_discovery.py +1 -2
  89. chia/_tests/core/server/test_rate_limits.py +156 -44
  90. chia/_tests/core/server/test_server.py +8 -7
  91. chia/_tests/core/services/test_services.py +59 -37
  92. chia/_tests/core/ssl/test_ssl.py +5 -3
  93. chia/_tests/core/test_cost_calculation.py +5 -6
  94. chia/_tests/core/test_crawler.py +2 -2
  95. chia/_tests/core/test_db_conversion.py +5 -4
  96. chia/_tests/core/test_db_validation.py +6 -5
  97. chia/_tests/core/test_farmer_harvester_rpc.py +8 -7
  98. chia/_tests/core/test_filter.py +3 -5
  99. chia/_tests/core/test_full_node_rpc.py +64 -90
  100. chia/_tests/core/test_merkle_set.py +10 -10
  101. chia/_tests/core/test_program.py +2 -4
  102. chia/_tests/core/test_rpc_util.py +1 -2
  103. chia/_tests/core/test_seeder.py +124 -12
  104. chia/_tests/core/util/test_block_cache.py +5 -5
  105. chia/_tests/core/util/test_cached_bls.py +3 -3
  106. chia/_tests/core/util/test_config.py +13 -13
  107. chia/_tests/core/util/test_files.py +2 -2
  108. chia/_tests/core/util/test_jsonify.py +9 -9
  109. chia/_tests/core/util/test_keychain.py +13 -5
  110. chia/_tests/core/util/test_keyring_wrapper.py +6 -5
  111. chia/_tests/core/util/test_log_exceptions.py +3 -3
  112. chia/_tests/core/util/test_streamable.py +38 -38
  113. chia/_tests/db/test_db_wrapper.py +13 -12
  114. chia/_tests/environments/common.py +2 -2
  115. chia/_tests/environments/full_node.py +2 -2
  116. chia/_tests/environments/wallet.py +109 -48
  117. chia/_tests/farmer_harvester/test_farmer.py +35 -35
  118. chia/_tests/farmer_harvester/test_farmer_harvester.py +17 -17
  119. chia/_tests/farmer_harvester/test_filter_prefix_bits.py +6 -5
  120. chia/_tests/farmer_harvester/test_third_party_harvesters.py +73 -46
  121. chia/_tests/fee_estimation/test_fee_estimation_integration.py +8 -8
  122. chia/_tests/fee_estimation/test_fee_estimation_rpc.py +47 -47
  123. chia/_tests/fee_estimation/test_fee_estimation_unit_tests.py +6 -7
  124. chia/_tests/fee_estimation/test_mempoolitem_height_added.py +11 -11
  125. chia/_tests/generator/test_compression.py +13 -30
  126. chia/_tests/generator/test_generator_types.py +3 -3
  127. chia/_tests/generator/test_rom.py +7 -9
  128. chia/_tests/plot_sync/test_delta.py +2 -3
  129. chia/_tests/plot_sync/test_plot_sync.py +25 -24
  130. chia/_tests/plot_sync/test_receiver.py +9 -9
  131. chia/_tests/plot_sync/test_sender.py +1 -1
  132. chia/_tests/plot_sync/test_sync_simulated.py +27 -26
  133. chia/_tests/plot_sync/util.py +2 -1
  134. chia/_tests/plotting/test_plot_manager.py +54 -11
  135. chia/_tests/plotting/util.py +2 -3
  136. chia/_tests/pools/test_pool_cli_parsing.py +128 -0
  137. chia/_tests/pools/test_pool_cmdline.py +993 -15
  138. chia/_tests/pools/test_pool_config.py +3 -5
  139. chia/_tests/pools/test_pool_puzzles_lifecycle.py +10 -11
  140. chia/_tests/pools/test_pool_rpc.py +203 -90
  141. chia/_tests/pools/test_pool_wallet.py +12 -8
  142. chia/_tests/pools/test_wallet_pool_store.py +3 -3
  143. chia/_tests/process_junit.py +16 -17
  144. chia/_tests/rpc/test_rpc_client.py +59 -2
  145. chia/_tests/rpc/test_rpc_server.py +183 -0
  146. chia/_tests/simulation/test_simulation.py +5 -5
  147. chia/_tests/simulation/test_simulator.py +8 -10
  148. chia/_tests/simulation/test_start_simulator.py +5 -4
  149. chia/_tests/timelord/test_new_peak.py +19 -19
  150. chia/_tests/tools/test_run_block.py +1 -2
  151. chia/_tests/tools/test_virtual_project.py +591 -0
  152. chia/_tests/util/benchmark_cost.py +9 -9
  153. chia/_tests/util/benchmarks.py +1 -2
  154. chia/_tests/util/blockchain.py +12 -11
  155. chia/_tests/util/blockchain_mock.py +15 -15
  156. chia/_tests/util/build_network_protocol_files.py +12 -12
  157. chia/_tests/util/db_connection.py +3 -2
  158. chia/_tests/util/full_sync.py +14 -6
  159. chia/_tests/util/gen_ssl_certs.py +4 -5
  160. chia/_tests/util/generator_tools_testing.py +5 -7
  161. chia/_tests/util/get_name_puzzle_conditions.py +52 -0
  162. chia/_tests/util/key_tool.py +2 -3
  163. chia/_tests/util/misc.py +59 -106
  164. chia/_tests/util/network_protocol_data.py +7 -9
  165. chia/_tests/util/protocol_messages_json.py +112 -111
  166. chia/_tests/util/rpc.py +3 -0
  167. chia/_tests/util/run_block.py +16 -16
  168. chia/_tests/util/setup_nodes.py +25 -23
  169. chia/{clvm → _tests/util}/spend_sim.py +59 -55
  170. chia/_tests/util/split_managers.py +12 -9
  171. chia/_tests/util/temp_file.py +1 -1
  172. chia/_tests/util/test_action_scope.py +2 -1
  173. chia/_tests/util/test_async_pool.py +8 -8
  174. chia/_tests/util/test_build_job_matrix.py +2 -3
  175. chia/_tests/util/test_condition_tools.py +4 -6
  176. chia/_tests/util/test_config.py +5 -5
  177. chia/_tests/util/test_dump_keyring.py +1 -1
  178. chia/_tests/util/test_full_block_utils.py +19 -11
  179. chia/_tests/util/test_limited_semaphore.py +4 -3
  180. chia/_tests/util/test_logging_filter.py +2 -3
  181. chia/_tests/util/test_misc.py +29 -28
  182. chia/_tests/util/test_network.py +32 -31
  183. chia/_tests/util/test_network_protocol_files.py +2 -3
  184. chia/_tests/util/test_network_protocol_json.py +1 -0
  185. chia/_tests/util/test_network_protocol_test.py +18 -19
  186. chia/_tests/util/test_paginator.py +3 -4
  187. chia/_tests/util/test_pprint.py +1 -1
  188. chia/_tests/util/test_priority_mutex.py +18 -17
  189. chia/_tests/util/test_recursive_replace.py +2 -2
  190. chia/_tests/util/test_testnet_overrides.py +3 -3
  191. chia/_tests/util/test_timing.py +1 -1
  192. chia/_tests/util/test_trusted_peer.py +2 -2
  193. chia/_tests/util/time_out_assert.py +43 -6
  194. chia/_tests/wallet/cat_wallet/test_cat_lifecycle.py +13 -13
  195. chia/_tests/wallet/cat_wallet/test_cat_outer_puzzle.py +1 -1
  196. chia/_tests/wallet/cat_wallet/test_cat_wallet.py +117 -29
  197. chia/_tests/wallet/cat_wallet/test_offer_lifecycle.py +15 -15
  198. chia/_tests/wallet/cat_wallet/test_trades.py +50 -28
  199. chia/_tests/wallet/clawback/test_clawback_decorator.py +3 -5
  200. chia/_tests/wallet/clawback/test_clawback_lifecycle.py +6 -6
  201. chia/_tests/wallet/clawback/test_clawback_metadata.py +1 -2
  202. chia/_tests/wallet/conftest.py +135 -74
  203. chia/_tests/wallet/dao_wallet/test_dao_clvm.py +25 -17
  204. chia/_tests/wallet/dao_wallet/test_dao_wallets.py +75 -75
  205. chia/_tests/wallet/db_wallet/test_db_graftroot.py +10 -12
  206. chia/_tests/wallet/db_wallet/test_dl_offers.py +6 -6
  207. chia/_tests/wallet/db_wallet/test_dl_wallet.py +18 -18
  208. chia/_tests/wallet/did_wallet/test_did.py +1277 -474
  209. chia/_tests/wallet/nft_wallet/test_nft_1_offers.py +12 -11
  210. chia/_tests/wallet/nft_wallet/test_nft_bulk_mint.py +115 -105
  211. chia/_tests/wallet/nft_wallet/test_nft_lifecycle.py +6 -7
  212. chia/_tests/wallet/nft_wallet/test_nft_offers.py +16 -16
  213. chia/_tests/wallet/nft_wallet/test_nft_puzzles.py +3 -3
  214. chia/_tests/wallet/nft_wallet/test_nft_wallet.py +38 -12
  215. chia/_tests/wallet/nft_wallet/test_ownership_outer_puzzle.py +1 -1
  216. chia/_tests/wallet/rpc/test_dl_wallet_rpc.py +31 -33
  217. chia/_tests/wallet/rpc/test_wallet_rpc.py +218 -171
  218. chia/_tests/wallet/simple_sync/test_simple_sync_protocol.py +36 -37
  219. chia/_tests/wallet/sync/test_wallet_sync.py +241 -78
  220. chia/_tests/wallet/test_address_type.py +20 -20
  221. chia/_tests/wallet/test_clvm_streamable.py +5 -5
  222. chia/_tests/wallet/test_coin_management.py +354 -0
  223. chia/_tests/wallet/test_coin_selection.py +34 -35
  224. chia/_tests/wallet/test_conditions.py +28 -16
  225. chia/_tests/wallet/test_debug_spend_bundle.py +156 -14
  226. chia/_tests/wallet/test_new_wallet_protocol.py +29 -31
  227. chia/_tests/wallet/test_nft_store.py +1 -2
  228. chia/_tests/wallet/test_notifications.py +2 -2
  229. chia/_tests/wallet/test_offer_parsing_performance.py +1 -1
  230. chia/_tests/wallet/test_puzzle_store.py +2 -3
  231. chia/_tests/wallet/test_sign_coin_spends.py +3 -3
  232. chia/_tests/wallet/test_signer_protocol.py +33 -34
  233. chia/_tests/wallet/test_singleton_lifecycle_fast.py +29 -29
  234. chia/_tests/wallet/test_taproot.py +1 -1
  235. chia/_tests/wallet/test_transaction_store.py +23 -19
  236. chia/_tests/wallet/test_util.py +36 -32
  237. chia/_tests/wallet/test_wallet.py +37 -37
  238. chia/_tests/wallet/test_wallet_action_scope.py +8 -8
  239. chia/_tests/wallet/test_wallet_blockchain.py +4 -6
  240. chia/_tests/wallet/test_wallet_coin_store.py +34 -34
  241. chia/_tests/wallet/test_wallet_node.py +69 -72
  242. chia/_tests/wallet/test_wallet_retry.py +3 -3
  243. chia/_tests/wallet/test_wallet_state_manager.py +12 -5
  244. chia/_tests/wallet/test_wallet_trade_store.py +2 -2
  245. chia/_tests/wallet/test_wallet_utils.py +5 -4
  246. chia/_tests/wallet/vc_wallet/test_cr_outer_puzzle.py +3 -3
  247. chia/_tests/wallet/vc_wallet/test_vc_lifecycle.py +18 -18
  248. chia/_tests/wallet/vc_wallet/test_vc_wallet.py +69 -40
  249. chia/_tests/wallet/wallet_block_tools.py +27 -27
  250. chia/_tests/weight_proof/test_weight_proof.py +30 -30
  251. chia/apis.py +19 -0
  252. chia/cmds/beta.py +8 -7
  253. chia/cmds/beta_funcs.py +15 -11
  254. chia/cmds/check_wallet_db.py +29 -27
  255. chia/cmds/chia.py +17 -9
  256. chia/cmds/cmd_classes.py +87 -79
  257. chia/cmds/cmd_helpers.py +242 -0
  258. chia/cmds/cmds_util.py +56 -66
  259. chia/cmds/coin_funcs.py +168 -153
  260. chia/cmds/coins.py +156 -194
  261. chia/cmds/configure.py +4 -3
  262. chia/cmds/dao.py +89 -33
  263. chia/cmds/dao_funcs.py +55 -33
  264. chia/cmds/data.py +7 -6
  265. chia/cmds/data_funcs.py +26 -21
  266. chia/cmds/db.py +4 -3
  267. chia/cmds/db_backup_func.py +2 -2
  268. chia/cmds/db_upgrade_func.py +3 -3
  269. chia/cmds/db_validate_func.py +2 -2
  270. chia/cmds/dev.py +2 -0
  271. chia/cmds/farm.py +18 -5
  272. chia/cmds/farm_funcs.py +17 -24
  273. chia/cmds/gh.py +275 -0
  274. chia/cmds/init.py +4 -11
  275. chia/cmds/init_funcs.py +9 -9
  276. chia/cmds/installers.py +5 -3
  277. chia/cmds/keys.py +56 -39
  278. chia/cmds/keys_funcs.py +30 -31
  279. chia/cmds/netspace.py +6 -3
  280. chia/cmds/netspace_funcs.py +3 -2
  281. chia/cmds/param_types.py +16 -6
  282. chia/cmds/passphrase.py +8 -7
  283. chia/cmds/passphrase_funcs.py +7 -61
  284. chia/cmds/peer.py +2 -1
  285. chia/cmds/peer_funcs.py +5 -5
  286. chia/cmds/plotnft.py +207 -153
  287. chia/cmds/plotnft_funcs.py +205 -174
  288. chia/cmds/plots.py +14 -6
  289. chia/cmds/plotters.py +2 -1
  290. chia/cmds/rpc.py +48 -28
  291. chia/cmds/show.py +2 -1
  292. chia/cmds/show_funcs.py +7 -6
  293. chia/cmds/signer.py +50 -58
  294. chia/cmds/sim.py +22 -14
  295. chia/cmds/sim_funcs.py +11 -11
  296. chia/cmds/start.py +3 -3
  297. chia/cmds/start_funcs.py +9 -12
  298. chia/cmds/stop.py +4 -3
  299. chia/cmds/units.py +1 -3
  300. chia/cmds/wallet.py +252 -96
  301. chia/cmds/wallet_funcs.py +217 -143
  302. chia/consensus/block_body_validation.py +133 -86
  303. chia/consensus/block_creation.py +42 -21
  304. chia/consensus/block_header_validation.py +32 -37
  305. chia/consensus/block_record.py +1 -2
  306. chia/consensus/blockchain.py +167 -180
  307. chia/consensus/blockchain_interface.py +10 -10
  308. chia/consensus/constants.py +2 -2
  309. chia/consensus/default_constants.py +3 -4
  310. chia/consensus/difficulty_adjustment.py +5 -5
  311. chia/consensus/find_fork_point.py +5 -5
  312. chia/consensus/full_block_to_block_record.py +4 -4
  313. chia/consensus/get_block_challenge.py +2 -2
  314. chia/consensus/get_block_generator.py +4 -3
  315. chia/consensus/multiprocess_validation.py +207 -304
  316. chia/consensus/vdf_info_computation.py +3 -3
  317. chia/daemon/client.py +46 -27
  318. chia/daemon/keychain_proxy.py +10 -9
  319. chia/daemon/keychain_server.py +18 -18
  320. chia/daemon/server.py +103 -113
  321. chia/daemon/windows_signal.py +2 -2
  322. chia/data_layer/data_layer.py +64 -76
  323. chia/data_layer/data_layer_api.py +8 -0
  324. chia/data_layer/data_layer_errors.py +3 -3
  325. chia/data_layer/data_layer_server.py +2 -2
  326. chia/data_layer/data_layer_util.py +71 -71
  327. chia/data_layer/data_layer_wallet.py +63 -67
  328. chia/data_layer/data_store.py +72 -72
  329. chia/data_layer/dl_wallet_store.py +10 -10
  330. chia/data_layer/download_data.py +5 -5
  331. chia/data_layer/s3_plugin_service.py +9 -9
  332. chia/data_layer/util/benchmark.py +0 -1
  333. chia/data_layer/util/plugin.py +2 -3
  334. chia/farmer/farmer.py +46 -43
  335. chia/farmer/farmer_api.py +27 -21
  336. chia/full_node/block_height_map.py +6 -6
  337. chia/full_node/block_store.py +41 -35
  338. chia/full_node/coin_store.py +42 -41
  339. chia/full_node/fee_estimate.py +2 -2
  340. chia/full_node/fee_estimation.py +1 -2
  341. chia/full_node/fee_history.py +5 -6
  342. chia/full_node/fee_tracker.py +24 -24
  343. chia/full_node/full_node.py +574 -300
  344. chia/full_node/full_node_api.py +181 -130
  345. chia/full_node/full_node_store.py +43 -43
  346. chia/full_node/hint_management.py +4 -4
  347. chia/full_node/hint_store.py +9 -10
  348. chia/full_node/mempool.py +25 -19
  349. chia/full_node/mempool_check_conditions.py +11 -42
  350. chia/full_node/mempool_manager.py +48 -53
  351. chia/full_node/pending_tx_cache.py +9 -9
  352. chia/full_node/subscriptions.py +23 -24
  353. chia/full_node/sync_store.py +8 -7
  354. chia/full_node/tx_processing_queue.py +3 -3
  355. chia/full_node/util/__init__.py +0 -0
  356. chia/full_node/weight_proof.py +79 -78
  357. chia/harvester/harvester.py +9 -8
  358. chia/harvester/harvester_api.py +19 -13
  359. chia/introducer/introducer.py +7 -5
  360. chia/introducer/introducer_api.py +9 -3
  361. chia/legacy/keyring.py +6 -5
  362. chia/plot_sync/delta.py +8 -8
  363. chia/plot_sync/receiver.py +12 -11
  364. chia/plot_sync/sender.py +15 -12
  365. chia/plotters/bladebit.py +12 -12
  366. chia/plotters/chiapos.py +2 -2
  367. chia/plotters/madmax.py +8 -8
  368. chia/plotters/plotters.py +6 -6
  369. chia/plotters/plotters_util.py +6 -4
  370. chia/plotting/cache.py +8 -7
  371. chia/plotting/check_plots.py +8 -8
  372. chia/plotting/create_plots.py +6 -6
  373. chia/plotting/manager.py +22 -22
  374. chia/plotting/util.py +31 -19
  375. chia/pools/pool_config.py +7 -7
  376. chia/pools/pool_puzzles.py +16 -16
  377. chia/pools/pool_wallet.py +64 -57
  378. chia/pools/pool_wallet_info.py +3 -3
  379. chia/protocols/full_node_protocol.py +3 -3
  380. chia/protocols/harvester_protocol.py +12 -12
  381. chia/protocols/introducer_protocol.py +1 -2
  382. chia/protocols/protocol_message_types.py +4 -4
  383. chia/protocols/protocol_state_machine.py +2 -2
  384. chia/protocols/protocol_timing.py +1 -0
  385. chia/protocols/shared_protocol.py +3 -3
  386. chia/protocols/timelord_protocol.py +2 -2
  387. chia/protocols/wallet_protocol.py +33 -33
  388. chia/rpc/crawler_rpc_api.py +12 -7
  389. chia/rpc/data_layer_rpc_api.py +49 -44
  390. chia/rpc/data_layer_rpc_client.py +41 -41
  391. chia/rpc/data_layer_rpc_util.py +7 -11
  392. chia/rpc/farmer_rpc_api.py +32 -27
  393. chia/rpc/farmer_rpc_client.py +14 -14
  394. chia/rpc/full_node_rpc_api.py +53 -48
  395. chia/rpc/full_node_rpc_client.py +30 -30
  396. chia/rpc/harvester_rpc_api.py +16 -11
  397. chia/rpc/harvester_rpc_client.py +6 -6
  398. chia/rpc/rpc_client.py +34 -14
  399. chia/rpc/rpc_server.py +117 -43
  400. chia/rpc/timelord_rpc_api.py +9 -4
  401. chia/rpc/util.py +11 -211
  402. chia/rpc/wallet_request_types.py +276 -60
  403. chia/rpc/wallet_rpc_api.py +563 -399
  404. chia/rpc/wallet_rpc_client.py +220 -250
  405. chia/seeder/crawl_store.py +6 -8
  406. chia/seeder/crawler.py +23 -36
  407. chia/seeder/crawler_api.py +28 -22
  408. chia/seeder/dns_server.py +99 -50
  409. chia/seeder/start_crawler.py +13 -9
  410. chia/server/address_manager.py +19 -19
  411. chia/server/address_manager_store.py +17 -17
  412. chia/server/api_protocol.py +106 -1
  413. chia/server/capabilities.py +3 -3
  414. chia/server/chia_policy.py +17 -16
  415. chia/server/introducer_peers.py +3 -3
  416. chia/server/node_discovery.py +34 -38
  417. chia/server/rate_limit_numbers.py +26 -16
  418. chia/server/rate_limits.py +67 -27
  419. chia/server/server.py +52 -31
  420. chia/server/signal_handlers.py +6 -3
  421. chia/server/ssl_context.py +5 -5
  422. chia/server/start_data_layer.py +37 -23
  423. chia/server/start_farmer.py +28 -16
  424. chia/server/start_full_node.py +29 -23
  425. chia/server/start_harvester.py +28 -15
  426. chia/server/start_introducer.py +27 -15
  427. chia/server/start_service.py +17 -29
  428. chia/server/start_timelord.py +25 -18
  429. chia/server/start_wallet.py +22 -18
  430. chia/server/upnp.py +4 -3
  431. chia/server/ws_connection.py +68 -54
  432. chia/simulator/add_blocks_in_batches.py +54 -0
  433. chia/simulator/block_tools.py +65 -64
  434. chia/simulator/full_node_simulator.py +66 -74
  435. chia/simulator/setup_services.py +10 -9
  436. chia/simulator/simulator_full_node_rpc_api.py +12 -14
  437. chia/simulator/simulator_full_node_rpc_client.py +3 -5
  438. chia/simulator/simulator_test_tools.py +8 -7
  439. chia/simulator/socket.py +1 -4
  440. chia/simulator/ssl_certs.py +5 -5
  441. chia/simulator/ssl_certs_1.py +2 -4
  442. chia/simulator/ssl_certs_10.py +2 -4
  443. chia/simulator/ssl_certs_2.py +2 -4
  444. chia/simulator/ssl_certs_3.py +2 -4
  445. chia/simulator/ssl_certs_4.py +2 -4
  446. chia/simulator/ssl_certs_5.py +2 -4
  447. chia/simulator/ssl_certs_6.py +2 -4
  448. chia/simulator/ssl_certs_7.py +2 -4
  449. chia/simulator/ssl_certs_8.py +2 -4
  450. chia/simulator/ssl_certs_9.py +2 -4
  451. chia/simulator/start_simulator.py +14 -6
  452. chia/simulator/wallet_tools.py +21 -20
  453. chia/ssl/create_ssl.py +11 -11
  454. chia/timelord/iters_from_block.py +2 -2
  455. chia/timelord/timelord.py +57 -33
  456. chia/timelord/timelord_api.py +12 -6
  457. chia/timelord/timelord_launcher.py +10 -8
  458. chia/timelord/timelord_state.py +5 -5
  459. chia/types/block_protocol.py +2 -2
  460. chia/types/blockchain_format/coin.py +3 -3
  461. chia/types/blockchain_format/program.py +17 -18
  462. chia/types/blockchain_format/tree_hash.py +9 -9
  463. chia/types/coin_spend.py +8 -8
  464. chia/types/condition_with_args.py +1 -2
  465. chia/types/eligible_coin_spends.py +16 -15
  466. chia/types/generator_types.py +1 -2
  467. chia/types/internal_mempool_item.py +1 -2
  468. chia/types/mempool_item.py +7 -7
  469. chia/types/mempool_submission_status.py +2 -2
  470. chia/types/peer_info.py +1 -1
  471. chia/types/spend_bundle.py +1 -2
  472. chia/types/transaction_queue_entry.py +2 -2
  473. chia/types/unfinished_header_block.py +2 -2
  474. chia/types/validation_state.py +14 -0
  475. chia/types/weight_proof.py +5 -6
  476. chia/util/action_scope.py +8 -8
  477. chia/util/async_pool.py +6 -4
  478. chia/util/augmented_chain.py +13 -9
  479. chia/util/batches.py +5 -2
  480. chia/util/bech32m.py +14 -11
  481. chia/util/beta_metrics.py +5 -4
  482. chia/util/block_cache.py +5 -5
  483. chia/util/byte_types.py +2 -0
  484. chia/util/check_fork_next_block.py +3 -2
  485. chia/util/chia_logging.py +41 -21
  486. chia/util/collection.py +3 -3
  487. chia/util/condition_tools.py +18 -18
  488. chia/util/config.py +26 -25
  489. chia/util/cpu.py +2 -0
  490. chia/util/db_synchronous.py +2 -0
  491. chia/util/db_version.py +2 -0
  492. chia/util/db_wrapper.py +13 -10
  493. chia/util/default_root.py +17 -0
  494. chia/util/dump_keyring.py +6 -6
  495. chia/util/errors.py +5 -3
  496. chia/util/file_keyring.py +22 -33
  497. chia/util/files.py +2 -0
  498. chia/util/full_block_utils.py +31 -7
  499. chia/util/generator_tools.py +18 -8
  500. chia/util/hash.py +3 -1
  501. chia/util/initial-config.yaml +19 -0
  502. chia/util/inline_executor.py +2 -0
  503. chia/util/ip_address.py +39 -0
  504. chia/util/json_util.py +0 -4
  505. chia/util/keychain.py +27 -24
  506. chia/util/keyring_wrapper.py +65 -4
  507. chia/util/limited_semaphore.py +3 -1
  508. chia/util/lock.py +4 -2
  509. chia/util/log_exceptions.py +5 -2
  510. chia/util/logging.py +3 -1
  511. chia/util/lru_cache.py +2 -0
  512. chia/util/math.py +4 -4
  513. chia/util/network.py +15 -73
  514. chia/util/paginator.py +3 -1
  515. chia/util/path.py +2 -0
  516. chia/util/permissions.py +3 -2
  517. chia/util/prev_transaction_block.py +1 -3
  518. chia/util/priority_mutex.py +6 -3
  519. chia/util/profiler.py +7 -4
  520. chia/util/recursive_replace.py +2 -0
  521. chia/util/safe_cancel_task.py +2 -0
  522. chia/util/service_groups.py +2 -2
  523. chia/util/setproctitle.py +2 -0
  524. chia/util/significant_bits.py +2 -0
  525. chia/util/ssl_check.py +11 -11
  526. chia/util/streamable.py +44 -56
  527. chia/util/task_referencer.py +59 -0
  528. chia/util/task_timing.py +22 -18
  529. chia/util/timing.py +4 -1
  530. chia/util/vdf_prover.py +2 -3
  531. chia/util/virtual_project_analysis.py +540 -0
  532. chia/util/ws_message.py +6 -6
  533. chia/wallet/cat_wallet/cat_info.py +3 -3
  534. chia/wallet/cat_wallet/cat_outer_puzzle.py +3 -3
  535. chia/wallet/cat_wallet/cat_utils.py +5 -4
  536. chia/wallet/cat_wallet/cat_wallet.py +56 -70
  537. chia/wallet/cat_wallet/dao_cat_info.py +3 -3
  538. chia/wallet/cat_wallet/dao_cat_wallet.py +18 -18
  539. chia/wallet/cat_wallet/lineage_store.py +2 -2
  540. chia/wallet/coin_selection.py +15 -15
  541. chia/wallet/conditions.py +257 -71
  542. chia/wallet/dao_wallet/dao_info.py +4 -4
  543. chia/wallet/dao_wallet/dao_utils.py +43 -42
  544. chia/wallet/dao_wallet/dao_wallet.py +66 -68
  545. chia/wallet/db_wallet/db_wallet_puzzles.py +12 -8
  546. chia/wallet/derive_keys.py +11 -11
  547. chia/wallet/did_wallet/did_info.py +3 -3
  548. chia/wallet/did_wallet/did_wallet.py +56 -47
  549. chia/wallet/did_wallet/did_wallet_puzzles.py +7 -6
  550. chia/wallet/lineage_proof.py +4 -4
  551. chia/wallet/nft_wallet/metadata_outer_puzzle.py +2 -2
  552. chia/wallet/nft_wallet/nft_info.py +4 -4
  553. chia/wallet/nft_wallet/nft_puzzles.py +16 -16
  554. chia/wallet/nft_wallet/nft_wallet.py +90 -89
  555. chia/wallet/nft_wallet/ownership_outer_puzzle.py +2 -2
  556. chia/wallet/nft_wallet/singleton_outer_puzzle.py +2 -2
  557. chia/wallet/nft_wallet/transfer_program_puzzle.py +2 -2
  558. chia/wallet/nft_wallet/uncurry_nft.py +2 -2
  559. chia/wallet/notification_manager.py +5 -5
  560. chia/wallet/notification_store.py +6 -6
  561. chia/wallet/outer_puzzles.py +2 -2
  562. chia/wallet/payment.py +4 -5
  563. chia/wallet/puzzle_drivers.py +4 -4
  564. chia/wallet/puzzles/clawback/drivers.py +5 -5
  565. chia/wallet/puzzles/clawback/puzzle_decorator.py +7 -7
  566. chia/wallet/puzzles/load_clvm.py +2 -3
  567. chia/wallet/puzzles/p2_conditions.py +1 -2
  568. chia/wallet/puzzles/p2_delegated_conditions.py +1 -2
  569. chia/wallet/puzzles/p2_delegated_puzzle.py +2 -3
  570. chia/wallet/puzzles/p2_delegated_puzzle_or_hidden_puzzle.py +3 -4
  571. chia/wallet/puzzles/p2_m_of_n_delegate_direct.py +1 -2
  572. chia/wallet/puzzles/p2_puzzle_hash.py +1 -2
  573. chia/wallet/puzzles/puzzle_utils.py +7 -7
  574. chia/wallet/puzzles/singleton_top_layer.py +6 -5
  575. chia/wallet/puzzles/singleton_top_layer_v1_1.py +6 -5
  576. chia/wallet/puzzles/tails.py +34 -30
  577. chia/wallet/signer_protocol.py +7 -8
  578. chia/wallet/singleton.py +4 -4
  579. chia/wallet/trade_manager.py +155 -141
  580. chia/wallet/trade_record.py +5 -5
  581. chia/wallet/trading/offer.py +100 -101
  582. chia/wallet/trading/trade_store.py +14 -14
  583. chia/wallet/transaction_record.py +31 -16
  584. chia/wallet/util/address_type.py +4 -4
  585. chia/wallet/util/blind_signer_tl.py +8 -12
  586. chia/wallet/util/clvm_streamable.py +15 -15
  587. chia/wallet/util/compute_hints.py +5 -5
  588. chia/wallet/util/compute_memos.py +4 -6
  589. chia/wallet/util/curry_and_treehash.py +3 -2
  590. chia/wallet/util/debug_spend_bundle.py +6 -8
  591. chia/wallet/util/merkle_tree.py +10 -10
  592. chia/wallet/util/merkle_utils.py +10 -10
  593. chia/wallet/util/new_peak_queue.py +3 -3
  594. chia/wallet/util/peer_request_cache.py +8 -8
  595. chia/{util → wallet/util}/pprint.py +2 -3
  596. chia/wallet/util/puzzle_compression.py +3 -4
  597. chia/wallet/util/puzzle_decorator.py +10 -10
  598. chia/wallet/util/query_filter.py +9 -10
  599. chia/wallet/util/tx_config.py +12 -12
  600. chia/wallet/util/wallet_sync_utils.py +24 -21
  601. chia/wallet/util/wallet_types.py +9 -2
  602. chia/wallet/vc_wallet/cr_cat_drivers.py +28 -27
  603. chia/wallet/vc_wallet/cr_cat_wallet.py +42 -40
  604. chia/wallet/vc_wallet/cr_outer_puzzle.py +4 -4
  605. chia/wallet/vc_wallet/vc_drivers.py +16 -16
  606. chia/wallet/vc_wallet/vc_store.py +9 -9
  607. chia/wallet/vc_wallet/vc_wallet.py +35 -35
  608. chia/wallet/wallet.py +54 -54
  609. chia/wallet/wallet_action_scope.py +14 -13
  610. chia/wallet/wallet_blockchain.py +10 -10
  611. chia/wallet/wallet_coin_record.py +2 -2
  612. chia/wallet/wallet_coin_store.py +10 -10
  613. chia/wallet/wallet_info.py +1 -2
  614. chia/wallet/wallet_interested_store.py +5 -5
  615. chia/wallet/wallet_nft_store.py +6 -6
  616. chia/wallet/wallet_node.py +72 -76
  617. chia/wallet/wallet_node_api.py +33 -27
  618. chia/wallet/wallet_pool_store.py +1 -2
  619. chia/wallet/wallet_protocol.py +15 -15
  620. chia/wallet/wallet_puzzle_store.py +35 -4
  621. chia/wallet/wallet_retry_store.py +2 -2
  622. chia/wallet/wallet_singleton_store.py +10 -9
  623. chia/wallet/wallet_spend_bundle.py +4 -20
  624. chia/wallet/wallet_state_manager.py +223 -224
  625. chia/wallet/wallet_transaction_store.py +44 -18
  626. chia/wallet/wallet_user_store.py +2 -2
  627. chia/wallet/wallet_weight_proof_handler.py +2 -2
  628. {chia_blockchain-2.5.0rc2.dist-info → chia_blockchain-2.5.1rc2.dist-info}/LICENSE +1 -1
  629. {chia_blockchain-2.5.0rc2.dist-info → chia_blockchain-2.5.1rc2.dist-info}/METADATA +67 -72
  630. chia_blockchain-2.5.1rc2.dist-info/RECORD +1042 -0
  631. {chia_blockchain-2.5.0rc2.dist-info → chia_blockchain-2.5.1rc2.dist-info}/WHEEL +1 -1
  632. mozilla-ca/cacert.pem +32 -87
  633. chia/_tests/cmds/wallet/test_coins.py +0 -195
  634. chia/consensus/block_root_validation.py +0 -46
  635. chia/util/api_decorators.py +0 -89
  636. chia_blockchain-2.5.0rc2.dist-info/RECORD +0 -1028
  637. {chia_blockchain-2.5.0rc2.dist-info → chia_blockchain-2.5.1rc2.dist-info}/entry_points.txt +0 -0
@@ -3,7 +3,7 @@ from __future__ import annotations
3
3
  import dataclasses
4
4
  import logging
5
5
  import time
6
- from typing import Dict, List, Optional, Tuple
6
+ from typing import Optional
7
7
 
8
8
  import aiosqlite
9
9
 
@@ -13,7 +13,12 @@ from chia.util.db_wrapper import DBWrapper2
13
13
  from chia.util.errors import Err
14
14
  from chia.util.ints import uint8, uint32
15
15
  from chia.wallet.conditions import ConditionValidTimes
16
- from chia.wallet.transaction_record import TransactionRecord, TransactionRecordOld, minimum_send_attempts
16
+ from chia.wallet.transaction_record import (
17
+ LightTransactionRecord,
18
+ TransactionRecord,
19
+ TransactionRecordOld,
20
+ minimum_send_attempts,
21
+ )
17
22
  from chia.wallet.transaction_sorting import SortKey
18
23
  from chia.wallet.util.query_filter import FilterMode, TransactionTypeFilter
19
24
  from chia.wallet.util.transaction_type import TransactionType
@@ -21,7 +26,7 @@ from chia.wallet.util.transaction_type import TransactionType
21
26
  log = logging.getLogger(__name__)
22
27
 
23
28
 
24
- def filter_ok_mempool_status(sent_to: List[Tuple[str, uint8, Optional[str]]]) -> List[Tuple[str, uint8, Optional[str]]]:
29
+ def filter_ok_mempool_status(sent_to: list[tuple[str, uint8, Optional[str]]]) -> list[tuple[str, uint8, Optional[str]]]:
25
30
  """Remove SUCCESS and PENDING status records from a TransactionRecord sent_to field"""
26
31
  new_sent_to = []
27
32
  for peer, status, err in sent_to:
@@ -36,7 +41,8 @@ class WalletTransactionStore:
36
41
  """
37
42
 
38
43
  db_wrapper: DBWrapper2
39
- tx_submitted: Dict[bytes32, Tuple[int, int]] # tx_id: [time submitted: count]
44
+ tx_submitted: dict[bytes32, tuple[int, int]] # tx_id: [time submitted: count]
45
+ unconfirmed_txs: list[LightTransactionRecord] # tx_id: [time submitted: count]
40
46
  last_wallet_tx_resend_time: int # Epoch time in seconds
41
47
 
42
48
  @classmethod
@@ -83,7 +89,7 @@ class WalletTransactionStore:
83
89
  try:
84
90
  await conn.execute("CREATE TABLE tx_times(txid blob PRIMARY KEY, valid_times blob)")
85
91
  async with await conn.execute("SELECT bundle_id from transaction_record") as cursor:
86
- txids: List[bytes32] = [bytes32(row[0]) for row in await cursor.fetchall()]
92
+ txids: list[bytes32] = [bytes32(row[0]) for row in await cursor.fetchall()]
87
93
  await conn.executemany(
88
94
  "INSERT INTO tx_times (txid, valid_times) VALUES(?, ?)",
89
95
  [(id, bytes(ConditionValidTimes())) for id in txids],
@@ -93,6 +99,7 @@ class WalletTransactionStore:
93
99
 
94
100
  self.tx_submitted = {}
95
101
  self.last_wallet_tx_resend_time = int(time.time())
102
+ await self.load_unconfirmed()
96
103
  return self
97
104
 
98
105
  async def add_transaction_record(self, record: TransactionRecord) -> None:
@@ -138,6 +145,9 @@ class WalletTransactionStore:
138
145
  await conn.execute_insert(
139
146
  "INSERT OR REPLACE INTO tx_times VALUES (?, ?)", (record.name, bytes(record.valid_times))
140
147
  )
148
+ ltx = get_light_transaction_record(record)
149
+ if record.confirmed is False and ltx not in self.unconfirmed_txs:
150
+ self.unconfirmed_txs.append(ltx)
141
151
 
142
152
  async def delete_transaction_record(self, tx_id: bytes32) -> None:
143
153
  async with self.db_wrapper.writer_maybe_transaction() as conn:
@@ -154,6 +164,7 @@ class WalletTransactionStore:
154
164
  return
155
165
  tx: TransactionRecord = dataclasses.replace(current, confirmed_at_height=height, confirmed=True)
156
166
  await self.add_transaction_record(tx)
167
+ self.unconfirmed_txs.remove(get_light_transaction_record(current))
157
168
 
158
169
  async def increment_sent(
159
170
  self,
@@ -222,7 +233,7 @@ class WalletTransactionStore:
222
233
  # queries the state and one that updates it. Also, include_accepted_txs=True
223
234
  # might be a separate function too.
224
235
  # also, the current time should be passed in as a parameter
225
- async def get_not_sent(self, *, include_accepted_txs=False) -> List[TransactionRecord]:
236
+ async def get_not_sent(self, *, include_accepted_txs=False) -> list[TransactionRecord]:
226
237
  """
227
238
  Returns the list of transactions that have not been received by full node yet.
228
239
  """
@@ -256,7 +267,7 @@ class WalletTransactionStore:
256
267
 
257
268
  return records
258
269
 
259
- async def get_farming_rewards(self) -> List[TransactionRecord]:
270
+ async def get_farming_rewards(self) -> list[TransactionRecord]:
260
271
  """
261
272
  Returns the list of all farming rewards.
262
273
  """
@@ -269,15 +280,22 @@ class WalletTransactionStore:
269
280
  )
270
281
  return await self._get_new_tx_records_from_old([TransactionRecordOld.from_bytes(row[0]) for row in rows])
271
282
 
272
- async def get_all_unconfirmed(self) -> List[TransactionRecord]:
283
+ async def get_all_unconfirmed(self) -> list[LightTransactionRecord]:
273
284
  """
274
285
  Returns the list of all transaction that have not yet been confirmed.
275
286
  """
287
+ return self.unconfirmed_txs
288
+
289
+ async def load_unconfirmed(self) -> None:
290
+ """
291
+ loads the list of all transaction that have not yet been confirmed into the cache.
292
+ """
276
293
  async with self.db_wrapper.reader_no_transaction() as conn:
277
294
  rows = await conn.execute_fetchall("SELECT transaction_record from transaction_record WHERE confirmed=0")
278
- return await self._get_new_tx_records_from_old([TransactionRecordOld.from_bytes(row[0]) for row in rows])
295
+ records = [TransactionRecordOld.from_bytes(row[0]) for row in rows]
296
+ self.unconfirmed_txs = [get_light_transaction_record(rec) for rec in records]
279
297
 
280
- async def get_unconfirmed_for_wallet(self, wallet_id: int) -> List[TransactionRecord]:
298
+ async def get_unconfirmed_for_wallet(self, wallet_id: int) -> list[TransactionRecord]:
281
299
  """
282
300
  Returns the list of transaction that have not yet been confirmed.
283
301
  """
@@ -297,7 +315,7 @@ class WalletTransactionStore:
297
315
  confirmed: Optional[bool] = None,
298
316
  to_puzzle_hash: Optional[bytes32] = None,
299
317
  type_filter: Optional[TransactionTypeFilter] = None,
300
- ) -> List[TransactionRecord]:
318
+ ) -> list[TransactionRecord]:
301
319
  """Return a list of transaction between start and end index. List is in reverse chronological order.
302
320
  start = 0 is most recent transaction
303
321
  """
@@ -366,7 +384,9 @@ class WalletTransactionStore:
366
384
  )
367
385
  return 0 if len(rows) == 0 else rows[0][0]
368
386
 
369
- async def get_all_transactions_for_wallet(self, wallet_id: int, type: int = None) -> List[TransactionRecord]:
387
+ async def get_all_transactions_for_wallet(
388
+ self, wallet_id: int, type: Optional[int] = None
389
+ ) -> list[TransactionRecord]:
370
390
  """
371
391
  Returns all stored transactions.
372
392
  """
@@ -385,7 +405,7 @@ class WalletTransactionStore:
385
405
  )
386
406
  return await self._get_new_tx_records_from_old([TransactionRecordOld.from_bytes(row[0]) for row in rows])
387
407
 
388
- async def get_all_transactions(self) -> List[TransactionRecord]:
408
+ async def get_all_transactions(self) -> list[TransactionRecord]:
389
409
  """
390
410
  Returns all stored transactions.
391
411
  """
@@ -393,7 +413,7 @@ class WalletTransactionStore:
393
413
  rows = await conn.execute_fetchall("SELECT transaction_record from transaction_record")
394
414
  return await self._get_new_tx_records_from_old([TransactionRecordOld.from_bytes(row[0]) for row in rows])
395
415
 
396
- async def get_transaction_above(self, height: int) -> List[TransactionRecord]:
416
+ async def get_transaction_above(self, height: int) -> list[TransactionRecord]:
397
417
  # Can be -1 (get all tx)
398
418
 
399
419
  async with self.db_wrapper.reader_no_transaction() as conn:
@@ -402,7 +422,7 @@ class WalletTransactionStore:
402
422
  )
403
423
  return await self._get_new_tx_records_from_old([TransactionRecordOld.from_bytes(row[0]) for row in rows])
404
424
 
405
- async def get_transactions_by_trade_id(self, trade_id: bytes32) -> List[TransactionRecord]:
425
+ async def get_transactions_by_trade_id(self, trade_id: bytes32) -> list[TransactionRecord]:
406
426
  async with self.db_wrapper.reader_no_transaction() as conn:
407
427
  rows = await conn.execute_fetchall(
408
428
  "SELECT transaction_record from transaction_record WHERE trade_id=?", (trade_id,)
@@ -428,11 +448,11 @@ class WalletTransactionStore:
428
448
  )
429
449
  ).close()
430
450
 
431
- async def _get_new_tx_records_from_old(self, old_records: List[TransactionRecordOld]) -> List[TransactionRecord]:
432
- tx_id_to_valid_times: Dict[bytes, ConditionValidTimes] = {}
451
+ async def _get_new_tx_records_from_old(self, old_records: list[TransactionRecordOld]) -> list[TransactionRecord]:
452
+ tx_id_to_valid_times: dict[bytes, ConditionValidTimes] = {}
433
453
  empty_valid_times = ConditionValidTimes()
434
454
  async with self.db_wrapper.reader_no_transaction() as conn:
435
- chunked_records: List[List[TransactionRecordOld]] = [
455
+ chunked_records: list[list[TransactionRecordOld]] = [
436
456
  old_records[i : min(len(old_records), i + self.db_wrapper.host_parameter_limit)]
437
457
  for i in range(0, len(old_records), self.db_wrapper.host_parameter_limit)
438
458
  ]
@@ -468,3 +488,9 @@ class WalletTransactionStore:
468
488
  )
469
489
  for record in old_records
470
490
  ]
491
+
492
+
493
+ def get_light_transaction_record(rec: TransactionRecordOld) -> LightTransactionRecord:
494
+ return LightTransactionRecord(
495
+ name=rec.name, additions=rec.additions, removals=rec.removals, type=rec.type, spend_bundle=rec.spend_bundle
496
+ )
@@ -1,6 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
- from typing import List, Optional
3
+ from typing import Optional
4
4
 
5
5
  from chia.util.db_wrapper import DBWrapper2, execute_fetchone
6
6
  from chia.util.ints import uint32
@@ -86,7 +86,7 @@ class WalletUserStore:
86
86
 
87
87
  return None if row is None else await self.get_wallet_by_id(row[0])
88
88
 
89
- async def get_all_wallet_info_entries(self, wallet_type: Optional[WalletType] = None) -> List[WalletInfo]:
89
+ async def get_all_wallet_info_entries(self, wallet_type: Optional[WalletType] = None) -> list[WalletInfo]:
90
90
  """
91
91
  Return a set containing all wallets, optionally with a specific WalletType
92
92
  """
@@ -6,7 +6,7 @@ import tempfile
6
6
  import time
7
7
  from concurrent.futures.process import ProcessPoolExecutor
8
8
  from multiprocessing.context import BaseContext
9
- from typing import IO, List, Optional
9
+ from typing import IO, Optional
10
10
 
11
11
  from chia.consensus.block_record import BlockRecord
12
12
  from chia.consensus.constants import ConsensusConstants
@@ -44,7 +44,7 @@ class WalletWeightProofHandler:
44
44
 
45
45
  async def validate_weight_proof(
46
46
  self, weight_proof: WeightProof, skip_segment_validation: bool = False, old_proof: Optional[WeightProof] = None
47
- ) -> List[BlockRecord]:
47
+ ) -> list[BlockRecord]:
48
48
  start_time = time.time()
49
49
  summaries, sub_epoch_weight_list = _validate_sub_epoch_summaries(self._constants, weight_proof)
50
50
  await asyncio.sleep(0) # break up otherwise multi-second sync code
@@ -186,7 +186,7 @@
186
186
  same "printed page" as the copyright notice for easier
187
187
  identification within third-party archives.
188
188
 
189
- Copyright 2024 Chia Network Inc.
189
+ Copyright 2025 Chia Network Inc.
190
190
 
191
191
  Licensed under the Apache License, Version 2.0 (the "License");
192
192
  you may not use this file except in compliance with the License.
@@ -1,85 +1,80 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.3
2
2
  Name: chia-blockchain
3
- Version: 2.5.0rc2
3
+ Version: 2.5.1rc2
4
4
  Summary: Chia blockchain full node, farmer, timelord, and wallet.
5
- Home-page: https://chia.net/
6
- License: Apache License
5
+ License: Apache-2.0
7
6
  Keywords: chia,blockchain,node
8
7
  Author: Mariano Sorgente
9
8
  Author-email: mariano@chia.net
10
- Requires-Python: >=3.9,<3.13
11
- Classifier: License :: Other/Proprietary License
9
+ Requires-Python: >=3.9, <4
10
+ Classifier: License :: OSI Approved :: Apache Software License
12
11
  Classifier: Programming Language :: Python :: 3
13
12
  Classifier: Programming Language :: Python :: 3.9
14
13
  Classifier: Programming Language :: Python :: 3.10
15
14
  Classifier: Programming Language :: Python :: 3.11
16
15
  Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.13
17
17
  Provides-Extra: dev
18
18
  Provides-Extra: legacy-keyring
19
19
  Provides-Extra: upnp
20
- Requires-Dist: aiofiles (==24.1.0)
21
- Requires-Dist: aiohttp (==3.10.4)
22
- Requires-Dist: aiohttp_cors (==0.7.0) ; extra == "dev"
23
- Requires-Dist: aiosqlite (==0.20.0)
24
- Requires-Dist: anyio (==4.3.0)
25
- Requires-Dist: bitstring (==4.1.4)
26
- Requires-Dist: black (==24.8.0) ; extra == "dev"
27
- Requires-Dist: boto3 (==1.34.143)
28
- Requires-Dist: build (==1.2.1) ; extra == "dev"
29
- Requires-Dist: chia_rs (==0.16.0)
30
- Requires-Dist: chiabip158 (==1.5.1)
31
- Requires-Dist: chiapos (==2.0.4)
32
- Requires-Dist: chiavdf (==1.1.6)
33
- Requires-Dist: click (==8.1.7)
34
- Requires-Dist: clvm (==0.9.10)
35
- Requires-Dist: clvm_tools (==0.4.9)
36
- Requires-Dist: clvm_tools_rs (==0.1.43)
37
- Requires-Dist: colorama (==0.4.6)
38
- Requires-Dist: colorlog (==6.8.2)
39
- Requires-Dist: concurrent_log_handler (==0.9.25)
40
- Requires-Dist: coverage (==7.6.1) ; extra == "dev"
41
- Requires-Dist: cryptography (==43.0.1)
42
- Requires-Dist: diff-cover (==9.0.0) ; extra == "dev"
43
- Requires-Dist: dnslib (==0.9.25)
44
- Requires-Dist: dnspython (==2.6.1)
45
- Requires-Dist: filelock (==3.15.4)
46
- Requires-Dist: flake8 (==7.1.1) ; extra == "dev"
47
- Requires-Dist: hsms (==0.3.1)
48
- Requires-Dist: importlib-resources (==6.4.0)
49
- Requires-Dist: isort (==5.13.2) ; extra == "dev"
50
- Requires-Dist: keyring (==25.2.1)
51
- Requires-Dist: keyrings.cryptfile (==1.3.9) ; extra == "legacy-keyring"
52
- Requires-Dist: lxml (==5.2.2) ; extra == "dev"
53
- Requires-Dist: miniupnpc (==2.2.2) ; extra == "upnp"
54
- Requires-Dist: mypy (==1.11.1) ; extra == "dev"
55
- Requires-Dist: packaging (==24.0)
56
- Requires-Dist: pip (==24.2)
57
- Requires-Dist: pre-commit (==3.5.0) ; (python_version < "3.9") and (extra == "dev")
58
- Requires-Dist: pre-commit (==3.7.1) ; (python_version >= "3.9") and (extra == "dev")
59
- Requires-Dist: psutil (==5.9.4) ; platform_machine != "aarch64"
60
- Requires-Dist: psutil (==5.9.4) ; platform_machine == "aarch64"
61
- Requires-Dist: py3createtorrent (==1.2.1) ; extra == "dev"
62
- Requires-Dist: pyinstaller (==6.9.0) ; extra == "dev"
63
- Requires-Dist: pylint (==3.2.6) ; extra == "dev"
64
- Requires-Dist: pytest (==8.3.3) ; extra == "dev"
65
- Requires-Dist: pytest-cov (==5.0.0) ; extra == "dev"
66
- Requires-Dist: pytest-mock (==3.14.0) ; extra == "dev"
67
- Requires-Dist: pytest-monitor (==1.6.6) ; (sys_platform == "linux") and (extra == "dev")
68
- Requires-Dist: pytest-xdist (==3.6.1) ; extra == "dev"
69
- Requires-Dist: pyupgrade (==3.16.0) ; extra == "dev"
70
- Requires-Dist: pyyaml (==6.0.1)
71
- Requires-Dist: setproctitle (==1.3.3)
72
- Requires-Dist: setuptools (==75.1.0)
73
- Requires-Dist: sortedcontainers (==2.4.0)
74
- Requires-Dist: types-aiofiles (==23.2.0.20240311) ; extra == "dev"
75
- Requires-Dist: types-cryptography (==3.3.23.2) ; extra == "dev"
76
- Requires-Dist: types-pyyaml (==6.0.12.20240311) ; extra == "dev"
77
- Requires-Dist: types-setuptools (==70.0.0.20240524) ; extra == "dev"
78
- Requires-Dist: typing-extensions (==4.11.0)
79
- Requires-Dist: watchdog (==4.0.1)
80
- Requires-Dist: zstd (==1.5.5.1) ; python_version < "3.12"
81
- Requires-Dist: zstd (==1.5.5.1) ; python_version == "3.12"
20
+ Requires-Dist: aiofiles (>=24.1.0)
21
+ Requires-Dist: aiohttp (>=3.10.4)
22
+ Requires-Dist: aiohttp_cors (>=0.7.0) ; extra == "dev"
23
+ Requires-Dist: aiosqlite (>=0.20.0)
24
+ Requires-Dist: anyio (>=4.6.2.post1)
25
+ Requires-Dist: bitstring (>=4.1.4)
26
+ Requires-Dist: boto3 (>=1.35.43)
27
+ Requires-Dist: build (>=1.2.1) ; extra == "dev"
28
+ Requires-Dist: chia_rs (>=0.18.0)
29
+ Requires-Dist: chiabip158 (>=1.5.1)
30
+ Requires-Dist: chiapos (>=2.0.9rc1)
31
+ Requires-Dist: chiavdf (>=1.1.8)
32
+ Requires-Dist: click (>=8.1.7)
33
+ Requires-Dist: clvm (>=0.9.11)
34
+ Requires-Dist: clvm_tools (>=0.4.9)
35
+ Requires-Dist: clvm_tools_rs (>=0.1.45)
36
+ Requires-Dist: colorama (>=0.4.6)
37
+ Requires-Dist: colorlog (>=6.9.0)
38
+ Requires-Dist: concurrent_log_handler (>=0.9.25)
39
+ Requires-Dist: coverage (>=7.6.4) ; extra == "dev"
40
+ Requires-Dist: cryptography (>=43.0.1)
41
+ Requires-Dist: diff-cover (>=9.2.0) ; extra == "dev"
42
+ Requires-Dist: dnslib (>=0.9.25)
43
+ Requires-Dist: dnspython (>=2.6.1)
44
+ Requires-Dist: filelock (>=3.16.1)
45
+ Requires-Dist: hsms (>=0.3.1)
46
+ Requires-Dist: importlib-resources (>=6.4.5)
47
+ Requires-Dist: keyring (>=25.5.0)
48
+ Requires-Dist: keyrings.cryptfile (>=1.3.9) ; extra == "legacy-keyring"
49
+ Requires-Dist: lxml (>=5.2.2) ; extra == "dev"
50
+ Requires-Dist: miniupnpc (>=2.2.2) ; extra == "upnp"
51
+ Requires-Dist: mypy (>=1.11.1) ; extra == "dev"
52
+ Requires-Dist: packaging (>=24.0)
53
+ Requires-Dist: pip (>=24.2)
54
+ Requires-Dist: pre-commit (>=3.7.1) ; extra == "dev"
55
+ Requires-Dist: psutil (>=6.1.0)
56
+ Requires-Dist: py3createtorrent (>=1.2.1) ; extra == "dev"
57
+ Requires-Dist: pyinstaller (>=6.9.0) ; (python_version < "3.13") and (extra == "dev")
58
+ Requires-Dist: pytest (>=8.3.3) ; extra == "dev"
59
+ Requires-Dist: pytest-cov (>=5.0.0) ; extra == "dev"
60
+ Requires-Dist: pytest-mock (>=3.14.0) ; extra == "dev"
61
+ Requires-Dist: pytest-monitor (>=1.6.6) ; (sys_platform == "linux") and (extra == "dev")
62
+ Requires-Dist: pytest-xdist (>=3.6.1) ; extra == "dev"
63
+ Requires-Dist: pyyaml (>=6.0.2)
64
+ Requires-Dist: ruff (>=0.8.1) ; extra == "dev"
65
+ Requires-Dist: setproctitle (>=1.3.3)
66
+ Requires-Dist: setuptools (>=75.5.0)
67
+ Requires-Dist: sortedcontainers (>=2.4.0)
68
+ Requires-Dist: types-aiofiles (>=24.1.0.20240626) ; extra == "dev"
69
+ Requires-Dist: types-cryptography (>=3.3.23.2) ; extra == "dev"
70
+ Requires-Dist: types-pyyaml (>=6.0.12.20240917) ; extra == "dev"
71
+ Requires-Dist: types-setuptools (>=75.5.0.20241122) ; extra == "dev"
72
+ Requires-Dist: typing-extensions (>=4.12.2)
73
+ Requires-Dist: watchdog (>=4.0.1)
74
+ Requires-Dist: zstd (>=1.5.5.1) ; python_version < "3.12"
75
+ Requires-Dist: zstd (>=1.5.5.1) ; python_version == "3.12"
82
76
  Project-URL: Changelog, https://github.com/Chia-Network/chia-blockchain/blob/main/CHANGELOG.md
77
+ Project-URL: Homepage, https://chia.net/
83
78
  Project-URL: Source, https://github.com/Chia-Network/chia-blockchain/
84
79
  Description-Content-Type: text/markdown
85
80
 
@@ -89,7 +84,7 @@ Description-Content-Type: text/markdown
89
84
 
90
85
  | Releases | Repo Stats | Socials |
91
86
  | ----------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
92
- | [![Latest Release][badge-release]][link-latest] <br /> [![Latest RC][badge-rc]][link-release] <br /> [![Latest Beta][badge-beta]][link-release] | [![Coverage][badge-coverage]][link-coverage] <br /> [![Downloads][badge-downloads]][link-downloads] <br /> [![Commits][badge-commits]][link-commits] <br /> [![Contributers][badge-contributers]][link-contributers] | [![Discord][badge-discord]][link-discord] <br /> [![YouTube][badge-youtube]][link-youtube] <br /> [![Reddit][badge-reddit]][link-reddit] <br /> [![Twitter][badge-twitter]][link-twitter] |
87
+ | [![Latest Release][badge-release]][link-latest] <br /> [![Latest RC][badge-rc]][link-release] <br /> [![Latest Beta][badge-beta]][link-release] | [![Coverage][badge-coverage]][link-coverage] <br /> [![Downloads][badge-downloads]][link-downloads] <br /> [![Commits][badge-commits]][link-commits] <br /> [![Contributors][badge-contributors]][link-contributors] | [![Discord][badge-discord]][link-discord] <br /> [![YouTube][badge-youtube]][link-youtube] <br /> [![Reddit][badge-reddit]][link-reddit] <br /> [![Twitter][badge-twitter]][link-twitter] |
93
88
 
94
89
  Chia is a modern cryptocurrency built from scratch, designed to be efficient, decentralized, and secure. Here are some of the features and benefits:
95
90
 
@@ -105,7 +100,7 @@ Chia is a modern cryptocurrency built from scratch, designed to be efficient, de
105
100
 
106
101
  Please check out the [Chia website][link-chia], the [Intro to Chia][link-intro], and [FAQ][link-faq] for information on this project.
107
102
 
108
- Python 3.8.1+ is required. Make sure your default python version is >=3.8.1 by typing `python3`.
103
+ Python 3.9+ is required. Make sure your default python version is >=3.9 by typing `python3`.
109
104
 
110
105
  If you are behind a NAT, it can be difficult for peers outside your subnet to reach you when they start up. You can enable [UPnP][link-upnp]
111
106
  on your router or add a NAT (for IPv4 but not IPv6) and firewall rules to allow TCP port 8444 access to your peer.
@@ -127,7 +122,7 @@ Once installed, an [Intro to Chia][link-intro] guide is available in the [Chia D
127
122
  [badge-beta]: https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fdownload.chia.net%2Flatest%2Fbadge-data-beta.json&query=%24.message&logo=chianetwork&logoColor=black&label=Latest%20Beta&labelColor=%23e9fbbc&color=%231e2b2e
128
123
  [badge-beta2]: https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fdownload.chia.net%2Flatest%2Fbadge-data-beta.json&query=%24.message&logo=chianetwork&logoColor=%23e9fbbc&label=Latest%20Beta&labelColor=%23474748&color=%231e2b2e&link=https%3A%2F%2Fgithub.com%2FChia-Network%2Fchia-blockchain%2Freleases&link=https%3A%2F%2Fgithub.com%2FChia-Network%2Fchia-blockchain%2Freleases
129
124
  [badge-commits]: https://img.shields.io/github/commit-activity/w/Chia-Network/chia-blockchain?logo=GitHub
130
- [badge-contributers]: https://img.shields.io/github/contributors/Chia-Network/chia-blockchain?logo=GitHub
125
+ [badge-contributors]: https://img.shields.io/github/contributors/Chia-Network/chia-blockchain?logo=GitHub
131
126
  [badge-coverage]: https://img.shields.io/coverallsCoverage/github/Chia-Network/chia-blockchain?logo=Coveralls&logoColor=red&labelColor=%23212F39
132
127
  [badge-discord]: https://dcbadge.vercel.app/api/server/chia?style=flat-square&theme=full-presence
133
128
  [badge-discord2]: https://img.shields.io/discord/1034523881404370984.svg?label=Discord&logo=discord&colorB=1e2b2f
@@ -141,7 +136,7 @@ Once installed, an [Intro to Chia][link-intro] guide is available in the [Chia D
141
136
  [link-chialisp]: https://chialisp.com/
142
137
  [link-commits]: https://github.com/Chia-Network/chia-blockchain/commits/main/
143
138
  [link-consensus]: https://docs.chia.net/consensus-intro/
144
- [link-contributers]: https://github.com/Chia-Network/chia-blockchain/graphs/contributors
139
+ [link-contributors]: https://github.com/Chia-Network/chia-blockchain/graphs/contributors
145
140
  [link-coverage]: https://coveralls.io/github/Chia-Network/chia-blockchain
146
141
  [link-discord]: https://discord.gg/chia
147
142
  [link-docs]: https://docs.chia.net/docs-home/