chia-blockchain 2.5.7rc4__py3-none-any.whl → 2.5.8rc1__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 (528) hide show
  1. chia/__init__.py +8 -4
  2. chia/_tests/blockchain/blockchain_test_utils.py +6 -8
  3. chia/_tests/blockchain/test_augmented_chain.py +4 -4
  4. chia/_tests/blockchain/test_blockchain.py +165 -190
  5. chia/_tests/blockchain/test_build_chains.py +2 -4
  6. chia/_tests/blockchain/test_get_block_generator.py +2 -3
  7. chia/_tests/clvm/coin_store.py +4 -7
  8. chia/_tests/clvm/test_clvm_step.py +4 -4
  9. chia/_tests/clvm/test_puzzle_compression.py +2 -1
  10. chia/_tests/clvm/test_puzzle_drivers.py +2 -2
  11. chia/_tests/clvm/test_singletons.py +2 -4
  12. chia/_tests/clvm/test_spend_sim.py +2 -2
  13. chia/_tests/cmds/cmd_test_utils.py +27 -45
  14. chia/_tests/cmds/test_cmd_framework.py +6 -6
  15. chia/_tests/cmds/test_daemon.py +3 -3
  16. chia/_tests/cmds/test_show.py +4 -4
  17. chia/_tests/cmds/test_tx_config_args.py +1 -2
  18. chia/_tests/cmds/testing_classes.py +4 -5
  19. chia/_tests/cmds/wallet/test_did.py +24 -27
  20. chia/_tests/cmds/wallet/test_nft.py +12 -10
  21. chia/_tests/cmds/wallet/test_vcs.py +11 -12
  22. chia/_tests/cmds/wallet/test_wallet.py +134 -89
  23. chia/_tests/conftest.py +59 -30
  24. chia/_tests/connection_utils.py +2 -2
  25. chia/_tests/core/cmds/test_beta.py +4 -4
  26. chia/_tests/core/cmds/test_keys.py +2 -3
  27. chia/_tests/core/cmds/test_wallet.py +15 -15
  28. chia/_tests/core/consensus/test_pot_iterations.py +19 -73
  29. chia/_tests/core/custom_types/test_proof_of_space.py +124 -98
  30. chia/_tests/core/daemon/test_daemon.py +11 -11
  31. chia/_tests/core/data_layer/conftest.py +2 -2
  32. chia/_tests/core/data_layer/test_data_rpc.py +28 -14
  33. chia/_tests/core/data_layer/test_data_store.py +10 -10
  34. chia/_tests/core/data_layer/util.py +11 -11
  35. chia/_tests/core/farmer/test_farmer_api.py +2 -4
  36. chia/_tests/core/full_node/full_sync/test_full_sync.py +8 -7
  37. chia/_tests/core/full_node/stores/test_block_store.py +5 -4
  38. chia/_tests/core/full_node/stores/test_coin_store.py +5 -11
  39. chia/_tests/core/full_node/stores/test_full_node_store.py +8 -8
  40. chia/_tests/core/full_node/stores/test_hint_store.py +2 -2
  41. chia/_tests/core/full_node/test_block_height_map.py +3 -4
  42. chia/_tests/core/full_node/test_conditions.py +21 -23
  43. chia/_tests/core/full_node/test_full_node.py +225 -62
  44. chia/_tests/core/full_node/test_hint_management.py +2 -4
  45. chia/_tests/core/full_node/test_performance.py +0 -1
  46. chia/_tests/core/full_node/test_prev_tx_block.py +88 -11
  47. chia/_tests/core/full_node/test_transactions.py +1 -2
  48. chia/_tests/core/full_node/test_tx_processing_queue.py +109 -25
  49. chia/_tests/core/mempool/test_mempool.py +29 -37
  50. chia/_tests/core/mempool/test_mempool_fee_estimator.py +39 -39
  51. chia/_tests/core/mempool/test_mempool_fee_protocol.py +2 -6
  52. chia/_tests/core/mempool/test_mempool_manager.py +963 -839
  53. chia/_tests/core/mempool/test_singleton_fast_forward.py +6 -6
  54. chia/_tests/core/server/serve.py +7 -7
  55. chia/_tests/core/server/test_dos.py +1 -2
  56. chia/_tests/core/server/test_event_loop.py +12 -4
  57. chia/_tests/core/server/test_loop.py +7 -8
  58. chia/_tests/core/server/test_rate_limits.py +9 -8
  59. chia/_tests/core/server/test_server.py +61 -1
  60. chia/_tests/core/services/test_services.py +2 -2
  61. chia/_tests/core/ssl/test_ssl.py +2 -2
  62. chia/_tests/core/test_cost_calculation.py +2 -6
  63. chia/_tests/core/test_farmer_harvester_rpc.py +3 -5
  64. chia/_tests/core/test_filter.py +0 -1
  65. chia/_tests/core/test_full_node_rpc.py +2 -2
  66. chia/_tests/core/test_merkle_set.py +1 -2
  67. chia/_tests/core/test_seeder.py +4 -4
  68. chia/_tests/core/util/test_config.py +4 -4
  69. chia/_tests/core/util/test_jsonify.py +2 -2
  70. chia/_tests/core/util/test_keychain.py +3 -3
  71. chia/_tests/core/util/test_lockfile.py +2 -1
  72. chia/_tests/core/util/test_log_exceptions.py +1 -2
  73. chia/_tests/core/util/test_streamable.py +17 -17
  74. chia/_tests/db/test_db_wrapper.py +3 -2
  75. chia/_tests/environments/wallet.py +14 -14
  76. chia/_tests/ether.py +4 -3
  77. chia/_tests/farmer_harvester/test_farmer.py +41 -24
  78. chia/_tests/farmer_harvester/test_farmer_harvester.py +50 -17
  79. chia/_tests/farmer_harvester/test_filter_prefix_bits.py +27 -27
  80. chia/_tests/farmer_harvester/test_third_party_harvesters.py +21 -22
  81. chia/_tests/fee_estimation/test_fee_estimation_integration.py +18 -18
  82. chia/_tests/fee_estimation/test_fee_estimation_rpc.py +11 -9
  83. chia/_tests/harvester/test_harvester_api.py +11 -4
  84. chia/_tests/plot_sync/test_plot_sync.py +13 -11
  85. chia/_tests/plot_sync/test_receiver.py +11 -10
  86. chia/_tests/plot_sync/test_sync_simulated.py +2 -2
  87. chia/_tests/plot_sync/util.py +1 -2
  88. chia/_tests/plotting/test_plot_manager.py +7 -6
  89. chia/_tests/plotting/test_prover.py +30 -38
  90. chia/_tests/pools/test_pool_cmdline.py +4 -6
  91. chia/_tests/pools/test_pool_rpc.py +203 -61
  92. chia/_tests/pools/test_pool_wallet.py +3 -3
  93. chia/_tests/pools/test_wallet_pool_store.py +1 -4
  94. chia/_tests/process_junit.py +2 -2
  95. chia/_tests/rpc/test_rpc_client.py +4 -4
  96. chia/_tests/rpc/test_rpc_server.py +3 -3
  97. chia/_tests/simulation/test_simulation.py +12 -25
  98. chia/_tests/solver/test_solver_service.py +13 -4
  99. chia/_tests/testconfig.py +2 -2
  100. chia/_tests/timelord/test_new_peak.py +22 -11
  101. chia/_tests/tools/test_run_block.py +0 -2
  102. chia/_tests/tools/test_virtual_project.py +2 -1
  103. chia/_tests/util/benchmarks.py +1 -0
  104. chia/_tests/util/blockchain.py +38 -36
  105. chia/_tests/util/blockchain_mock.py +11 -11
  106. chia/_tests/util/build_network_protocol_files.py +2 -1
  107. chia/_tests/util/coin_store.py +2 -1
  108. chia/_tests/util/config.py +1 -1
  109. chia/_tests/util/db_connection.py +2 -3
  110. chia/_tests/util/full_sync.py +9 -11
  111. chia/_tests/util/gen_ssl_certs.py +4 -5
  112. chia/_tests/util/get_name_puzzle_conditions.py +2 -0
  113. chia/_tests/util/misc.py +24 -24
  114. chia/_tests/util/network_protocol_data.py +20 -3
  115. chia/_tests/util/protocol_messages_bytes-v1.0 +0 -0
  116. chia/_tests/util/protocol_messages_json.py +292 -3
  117. chia/_tests/util/setup_nodes.py +62 -47
  118. chia/_tests/util/spend_sim.py +57 -57
  119. chia/_tests/util/test_async_pool.py +2 -3
  120. chia/_tests/util/test_chia_version.py +1 -3
  121. chia/_tests/util/test_config.py +3 -3
  122. chia/_tests/util/test_full_block_utils.py +6 -3
  123. chia/_tests/util/test_limited_semaphore.py +1 -2
  124. chia/_tests/util/test_misc.py +2 -2
  125. chia/_tests/util/test_network.py +1 -2
  126. chia/_tests/util/test_priority_mutex.py +3 -3
  127. chia/_tests/util/test_recursive_replace.py +5 -6
  128. chia/_tests/util/test_replace_str_to_bytes.py +8 -10
  129. chia/_tests/util/test_testnet_overrides.py +3 -3
  130. chia/_tests/util/time_out_assert.py +2 -2
  131. chia/_tests/wallet/cat_wallet/test_cat_lifecycle.py +4 -6
  132. chia/_tests/wallet/cat_wallet/test_cat_outer_puzzle.py +2 -4
  133. chia/_tests/wallet/cat_wallet/test_cat_wallet.py +19 -13
  134. chia/_tests/wallet/cat_wallet/test_offer_lifecycle.py +13 -13
  135. chia/_tests/wallet/cat_wallet/test_trades.py +40 -38
  136. chia/_tests/wallet/clawback/test_clawback_lifecycle.py +2 -4
  137. chia/_tests/wallet/conftest.py +6 -6
  138. chia/_tests/wallet/db_wallet/test_db_graftroot.py +1 -1
  139. chia/_tests/wallet/db_wallet/test_dl_offers.py +34 -34
  140. chia/_tests/wallet/did_wallet/test_did.py +16 -6
  141. chia/_tests/wallet/nft_wallet/test_nft_1_offers.py +21 -21
  142. chia/_tests/wallet/nft_wallet/test_nft_bulk_mint.py +20 -6
  143. chia/_tests/wallet/nft_wallet/test_nft_offers.py +19 -21
  144. chia/_tests/wallet/nft_wallet/test_nft_puzzles.py +1 -2
  145. chia/_tests/wallet/nft_wallet/test_nft_wallet.py +121 -2
  146. chia/_tests/wallet/nft_wallet/test_ownership_outer_puzzle.py +6 -9
  147. chia/_tests/wallet/rpc/test_dl_wallet_rpc.py +44 -1
  148. chia/_tests/wallet/rpc/test_wallet_rpc.py +1672 -896
  149. chia/_tests/wallet/sync/test_wallet_sync.py +43 -47
  150. chia/_tests/wallet/test_clvm_streamable.py +2 -3
  151. chia/_tests/wallet/test_coin_management.py +2 -2
  152. chia/_tests/wallet/test_conditions.py +45 -51
  153. chia/_tests/wallet/test_debug_spend_bundle.py +2 -2
  154. chia/_tests/wallet/test_new_wallet_protocol.py +4 -6
  155. chia/_tests/wallet/test_notifications.py +14 -14
  156. chia/_tests/wallet/test_signer_protocol.py +5 -5
  157. chia/_tests/wallet/test_singleton_lifecycle_fast.py +4 -3
  158. chia/_tests/wallet/test_transaction_store.py +20 -20
  159. chia/_tests/wallet/test_util.py +2 -2
  160. chia/_tests/wallet/test_wallet.py +380 -228
  161. chia/_tests/wallet/test_wallet_action_scope.py +4 -4
  162. chia/_tests/wallet/test_wallet_blockchain.py +12 -12
  163. chia/_tests/wallet/test_wallet_coin_store.py +3 -4
  164. chia/_tests/wallet/test_wallet_node.py +14 -14
  165. chia/_tests/wallet/test_wallet_test_framework.py +2 -1
  166. chia/_tests/wallet/test_wallet_utils.py +2 -3
  167. chia/_tests/wallet/vc_wallet/test_cr_outer_puzzle.py +3 -5
  168. chia/_tests/wallet/vc_wallet/test_vc_lifecycle.py +14 -15
  169. chia/_tests/wallet/vc_wallet/test_vc_wallet.py +29 -24
  170. chia/_tests/wallet/wallet_block_tools.py +12 -11
  171. chia/_tests/weight_proof/config.py +1 -0
  172. chia/_tests/weight_proof/test_weight_proof.py +5 -4
  173. chia/apis/__init__.py +21 -0
  174. chia/apis/farmer_stub.py +102 -0
  175. chia/apis/full_node_stub.py +372 -0
  176. chia/apis/harvester_stub.py +57 -0
  177. chia/apis/introducer_stub.py +35 -0
  178. chia/apis/solver_stub.py +30 -0
  179. chia/apis/stub_protocol_registry.py +21 -0
  180. chia/apis/timelord_stub.py +39 -0
  181. chia/apis/wallet_stub.py +161 -0
  182. chia/cmds/beta.py +3 -4
  183. chia/cmds/beta_funcs.py +4 -3
  184. chia/cmds/check_wallet_db.py +4 -4
  185. chia/cmds/chia.py +1 -2
  186. chia/cmds/cmd_classes.py +11 -13
  187. chia/cmds/cmd_helpers.py +11 -11
  188. chia/cmds/cmds_util.py +15 -15
  189. chia/cmds/coin_funcs.py +6 -7
  190. chia/cmds/coins.py +2 -3
  191. chia/cmds/configure.py +1 -2
  192. chia/cmds/data.py +42 -42
  193. chia/cmds/data_funcs.py +81 -81
  194. chia/cmds/db.py +4 -5
  195. chia/cmds/db_backup_func.py +2 -2
  196. chia/cmds/db_upgrade_func.py +3 -3
  197. chia/cmds/db_validate_func.py +2 -2
  198. chia/cmds/dev/data.py +4 -4
  199. chia/cmds/dev/gh.py +5 -5
  200. chia/cmds/dev/installers.py +2 -3
  201. chia/cmds/dev/mempool.py +3 -4
  202. chia/cmds/dev/mempool_funcs.py +4 -4
  203. chia/cmds/dev/sim.py +8 -8
  204. chia/cmds/dump_keyring.py +3 -3
  205. chia/cmds/farm.py +6 -8
  206. chia/cmds/farm_funcs.py +25 -24
  207. chia/cmds/init_funcs.py +4 -4
  208. chia/cmds/keys.py +16 -18
  209. chia/cmds/keys_funcs.py +36 -36
  210. chia/cmds/netspace.py +1 -3
  211. chia/cmds/netspace_funcs.py +1 -2
  212. chia/cmds/options.py +3 -2
  213. chia/cmds/param_types.py +17 -16
  214. chia/cmds/passphrase.py +6 -7
  215. chia/cmds/passphrase_funcs.py +11 -13
  216. chia/cmds/peer.py +1 -3
  217. chia/cmds/peer_funcs.py +3 -3
  218. chia/cmds/plotnft.py +6 -7
  219. chia/cmds/plotnft_funcs.py +37 -26
  220. chia/cmds/rpc.py +3 -3
  221. chia/cmds/show.py +3 -5
  222. chia/cmds/show_funcs.py +9 -9
  223. chia/cmds/sim_funcs.py +25 -26
  224. chia/cmds/solver.py +1 -3
  225. chia/cmds/solver_funcs.py +1 -2
  226. chia/cmds/start_funcs.py +2 -2
  227. chia/cmds/wallet.py +76 -81
  228. chia/cmds/wallet_funcs.py +206 -177
  229. chia/consensus/augmented_chain.py +6 -6
  230. chia/consensus/block_body_validation.py +19 -15
  231. chia/consensus/block_creation.py +25 -21
  232. chia/consensus/block_header_validation.py +27 -13
  233. chia/consensus/block_height_map.py +3 -6
  234. chia/consensus/block_height_map_protocol.py +2 -2
  235. chia/consensus/block_record.py +2 -4
  236. chia/consensus/blockchain.py +58 -40
  237. chia/consensus/blockchain_interface.py +7 -7
  238. chia/consensus/coin_store_protocol.py +5 -6
  239. chia/consensus/condition_tools.py +4 -4
  240. chia/consensus/cost_calculator.py +2 -3
  241. chia/consensus/default_constants.py +16 -13
  242. chia/consensus/deficit.py +1 -3
  243. chia/consensus/difficulty_adjustment.py +3 -5
  244. chia/consensus/find_fork_point.py +2 -4
  245. chia/consensus/full_block_to_block_record.py +11 -13
  246. chia/consensus/generator_tools.py +2 -3
  247. chia/consensus/get_block_challenge.py +42 -26
  248. chia/consensus/get_block_generator.py +2 -3
  249. chia/consensus/make_sub_epoch_summary.py +8 -7
  250. chia/consensus/multiprocess_validation.py +31 -20
  251. chia/consensus/pos_quality.py +6 -23
  252. chia/consensus/pot_iterations.py +17 -44
  253. chia/consensus/signage_point.py +4 -5
  254. chia/consensus/vdf_info_computation.py +2 -4
  255. chia/daemon/client.py +8 -8
  256. chia/daemon/keychain_proxy.py +31 -37
  257. chia/daemon/server.py +32 -33
  258. chia/daemon/windows_signal.py +4 -3
  259. chia/data_layer/data_layer.py +86 -77
  260. chia/data_layer/data_layer_rpc_api.py +9 -9
  261. chia/data_layer/data_layer_rpc_client.py +13 -15
  262. chia/data_layer/data_layer_server.py +3 -3
  263. chia/data_layer/data_layer_util.py +14 -14
  264. chia/data_layer/data_layer_wallet.py +94 -101
  265. chia/data_layer/data_store.py +50 -50
  266. chia/data_layer/dl_wallet_store.py +9 -12
  267. chia/data_layer/download_data.py +8 -9
  268. chia/data_layer/s3_plugin_service.py +5 -9
  269. chia/data_layer/start_data_layer.py +5 -5
  270. chia/farmer/farmer.py +31 -31
  271. chia/farmer/farmer_api.py +45 -33
  272. chia/farmer/farmer_rpc_api.py +5 -4
  273. chia/farmer/farmer_rpc_client.py +6 -6
  274. chia/farmer/start_farmer.py +6 -6
  275. chia/full_node/block_store.py +13 -16
  276. chia/full_node/check_fork_next_block.py +1 -2
  277. chia/full_node/coin_store.py +15 -16
  278. chia/full_node/eligible_coin_spends.py +3 -3
  279. chia/full_node/fee_estimate_store.py +2 -3
  280. chia/full_node/fee_tracker.py +1 -2
  281. chia/full_node/full_block_utils.py +4 -4
  282. chia/full_node/full_node.py +238 -224
  283. chia/full_node/full_node_api.py +193 -150
  284. chia/full_node/full_node_rpc_api.py +53 -31
  285. chia/full_node/full_node_rpc_client.py +18 -19
  286. chia/full_node/full_node_store.py +45 -43
  287. chia/full_node/hint_management.py +2 -2
  288. chia/full_node/mempool.py +17 -19
  289. chia/full_node/mempool_manager.py +89 -42
  290. chia/full_node/pending_tx_cache.py +2 -3
  291. chia/full_node/start_full_node.py +5 -5
  292. chia/full_node/sync_store.py +3 -4
  293. chia/full_node/tx_processing_queue.py +34 -13
  294. chia/full_node/weight_proof.py +61 -48
  295. chia/harvester/harvester.py +25 -24
  296. chia/harvester/harvester_api.py +61 -38
  297. chia/harvester/harvester_rpc_api.py +10 -10
  298. chia/harvester/start_harvester.py +4 -4
  299. chia/introducer/introducer.py +3 -3
  300. chia/introducer/introducer_api.py +6 -4
  301. chia/introducer/start_introducer.py +4 -4
  302. chia/legacy/keyring.py +3 -3
  303. chia/plot_sync/delta.py +1 -2
  304. chia/plot_sync/receiver.py +20 -17
  305. chia/plot_sync/sender.py +15 -10
  306. chia/plotters/bladebit.py +7 -7
  307. chia/plotters/chiapos.py +2 -2
  308. chia/plotters/madmax.py +4 -4
  309. chia/plotters/plotters.py +4 -4
  310. chia/plotters/plotters_util.py +3 -3
  311. chia/plotting/cache.py +20 -14
  312. chia/plotting/check_plots.py +26 -35
  313. chia/plotting/create_plots.py +22 -23
  314. chia/plotting/manager.py +21 -14
  315. chia/plotting/prover.py +59 -42
  316. chia/plotting/util.py +16 -16
  317. chia/pools/pool_config.py +2 -1
  318. chia/pools/pool_puzzles.py +11 -12
  319. chia/pools/pool_wallet.py +34 -57
  320. chia/pools/pool_wallet_info.py +39 -10
  321. chia/protocols/farmer_protocol.py +8 -9
  322. chia/protocols/fee_estimate.py +3 -4
  323. chia/protocols/full_node_protocol.py +3 -4
  324. chia/protocols/harvester_protocol.py +27 -15
  325. chia/protocols/outbound_message.py +3 -3
  326. chia/protocols/pool_protocol.py +8 -9
  327. chia/protocols/shared_protocol.py +1 -2
  328. chia/protocols/solver_protocol.py +9 -2
  329. chia/protocols/timelord_protocol.py +4 -7
  330. chia/protocols/wallet_protocol.py +11 -12
  331. chia/rpc/rpc_client.py +9 -9
  332. chia/rpc/rpc_server.py +17 -17
  333. chia/rpc/util.py +2 -2
  334. chia/seeder/crawler.py +8 -8
  335. chia/seeder/crawler_api.py +21 -27
  336. chia/seeder/crawler_rpc_api.py +2 -2
  337. chia/seeder/dns_server.py +21 -21
  338. chia/seeder/start_crawler.py +4 -4
  339. chia/server/address_manager.py +15 -16
  340. chia/server/api_protocol.py +11 -11
  341. chia/server/chia_policy.py +46 -26
  342. chia/server/introducer_peers.py +2 -3
  343. chia/server/node_discovery.py +19 -19
  344. chia/server/rate_limit_numbers.py +4 -5
  345. chia/server/rate_limits.py +4 -4
  346. chia/server/resolve_peer_info.py +4 -4
  347. chia/server/server.py +49 -52
  348. chia/server/signal_handlers.py +6 -6
  349. chia/server/start_service.py +17 -17
  350. chia/server/upnp.py +4 -6
  351. chia/server/ws_connection.py +52 -37
  352. chia/simulator/add_blocks_in_batches.py +1 -3
  353. chia/simulator/block_tools.py +312 -200
  354. chia/simulator/full_node_simulator.py +56 -35
  355. chia/simulator/keyring.py +2 -3
  356. chia/simulator/setup_services.py +15 -15
  357. chia/simulator/simulator_full_node_rpc_api.py +1 -2
  358. chia/simulator/simulator_full_node_rpc_client.py +1 -2
  359. chia/simulator/simulator_protocol.py +1 -2
  360. chia/simulator/simulator_test_tools.py +3 -3
  361. chia/simulator/start_simulator.py +7 -7
  362. chia/simulator/wallet_tools.py +10 -10
  363. chia/solver/solver.py +10 -10
  364. chia/solver/solver_api.py +10 -8
  365. chia/solver/solver_rpc_api.py +2 -2
  366. chia/solver/start_solver.py +4 -4
  367. chia/ssl/cacert.pem +148 -90
  368. chia/ssl/chia_ca.crt +14 -10
  369. chia/ssl/chia_ca_old.crt +19 -0
  370. chia/ssl/create_ssl.py +4 -4
  371. chia/ssl/renewedselfsignedca.conf +4 -0
  372. chia/ssl/ssl_check.py +1 -2
  373. chia/timelord/iters_from_block.py +1 -4
  374. chia/timelord/start_timelord.py +4 -4
  375. chia/timelord/timelord.py +44 -40
  376. chia/timelord/timelord_api.py +6 -4
  377. chia/timelord/timelord_launcher.py +2 -2
  378. chia/timelord/timelord_rpc_api.py +2 -2
  379. chia/timelord/timelord_state.py +11 -12
  380. chia/types/block_protocol.py +1 -3
  381. chia/types/blockchain_format/coin.py +1 -3
  382. chia/types/blockchain_format/program.py +11 -8
  383. chia/types/blockchain_format/proof_of_space.py +123 -76
  384. chia/types/blockchain_format/tree_hash.py +3 -3
  385. chia/types/blockchain_format/vdf.py +1 -2
  386. chia/types/coin_spend.py +3 -3
  387. chia/types/mempool_item.py +5 -5
  388. chia/types/mempool_submission_status.py +2 -3
  389. chia/types/peer_info.py +1 -2
  390. chia/types/unfinished_header_block.py +3 -4
  391. chia/types/validation_state.py +1 -2
  392. chia/util/action_scope.py +8 -8
  393. chia/util/async_pool.py +5 -5
  394. chia/util/bech32m.py +1 -2
  395. chia/util/beta_metrics.py +2 -2
  396. chia/util/block_cache.py +4 -4
  397. chia/util/chia_logging.py +2 -2
  398. chia/util/chia_version.py +1 -2
  399. chia/util/config.py +15 -16
  400. chia/util/db_wrapper.py +26 -27
  401. chia/util/default_root.py +1 -2
  402. chia/util/errors.py +3 -3
  403. chia/util/file_keyring.py +14 -14
  404. chia/util/files.py +2 -3
  405. chia/util/hash.py +4 -4
  406. chia/util/initial-config.yaml +3 -5
  407. chia/util/inline_executor.py +2 -1
  408. chia/util/ip_address.py +1 -2
  409. chia/util/keychain.py +25 -27
  410. chia/util/keyring_wrapper.py +18 -19
  411. chia/util/lock.py +3 -4
  412. chia/util/log_exceptions.py +1 -2
  413. chia/util/lru_cache.py +2 -2
  414. chia/util/network.py +6 -6
  415. chia/util/path.py +2 -3
  416. chia/util/priority_mutex.py +2 -2
  417. chia/util/profiler.py +1 -2
  418. chia/util/safe_cancel_task.py +1 -2
  419. chia/util/streamable.py +22 -8
  420. chia/util/task_referencer.py +1 -1
  421. chia/util/timing.py +3 -3
  422. chia/util/virtual_project_analysis.py +6 -5
  423. chia/util/ws_message.py +2 -2
  424. chia/wallet/cat_wallet/cat_info.py +3 -4
  425. chia/wallet/cat_wallet/cat_outer_puzzle.py +12 -11
  426. chia/wallet/cat_wallet/cat_utils.py +3 -4
  427. chia/wallet/cat_wallet/cat_wallet.py +61 -83
  428. chia/wallet/cat_wallet/lineage_store.py +3 -4
  429. chia/wallet/cat_wallet/r_cat_wallet.py +19 -22
  430. chia/wallet/coin_selection.py +9 -10
  431. chia/wallet/conditions.py +120 -105
  432. chia/wallet/db_wallet/db_wallet_puzzles.py +4 -5
  433. chia/wallet/derivation_record.py +1 -2
  434. chia/wallet/derive_keys.py +2 -4
  435. chia/wallet/did_wallet/did_info.py +10 -11
  436. chia/wallet/did_wallet/did_wallet.py +36 -82
  437. chia/wallet/did_wallet/did_wallet_puzzles.py +7 -8
  438. chia/wallet/driver_protocol.py +5 -7
  439. chia/wallet/lineage_proof.py +4 -4
  440. chia/wallet/nft_wallet/metadata_outer_puzzle.py +11 -11
  441. chia/wallet/nft_wallet/nft_info.py +8 -9
  442. chia/wallet/nft_wallet/nft_puzzle_utils.py +8 -8
  443. chia/wallet/nft_wallet/nft_wallet.py +79 -116
  444. chia/wallet/nft_wallet/ownership_outer_puzzle.py +14 -14
  445. chia/wallet/nft_wallet/singleton_outer_puzzle.py +12 -11
  446. chia/wallet/nft_wallet/transfer_program_puzzle.py +11 -11
  447. chia/wallet/nft_wallet/uncurry_nft.py +10 -11
  448. chia/wallet/notification_manager.py +3 -3
  449. chia/wallet/notification_store.py +44 -61
  450. chia/wallet/outer_puzzles.py +6 -7
  451. chia/wallet/puzzle_drivers.py +34 -6
  452. chia/wallet/puzzles/clawback/drivers.py +6 -6
  453. chia/wallet/puzzles/deployed_puzzle_hashes.json +1 -54
  454. chia/wallet/puzzles/load_clvm.py +1 -1
  455. chia/wallet/puzzles/p2_delegated_puzzle_or_hidden_puzzle.py +1 -2
  456. chia/wallet/puzzles/singleton_top_layer.py +2 -3
  457. chia/wallet/puzzles/singleton_top_layer_v1_1.py +3 -4
  458. chia/wallet/puzzles/tails.py +3 -3
  459. chia/wallet/singleton.py +5 -7
  460. chia/wallet/singleton_record.py +3 -3
  461. chia/wallet/start_wallet.py +5 -5
  462. chia/wallet/trade_manager.py +37 -58
  463. chia/wallet/trade_record.py +4 -4
  464. chia/wallet/trading/offer.py +59 -46
  465. chia/wallet/trading/trade_store.py +8 -9
  466. chia/wallet/transaction_record.py +8 -8
  467. chia/wallet/uncurried_puzzle.py +1 -2
  468. chia/wallet/util/clvm_streamable.py +12 -12
  469. chia/wallet/util/compute_hints.py +4 -5
  470. chia/wallet/util/curry_and_treehash.py +1 -2
  471. chia/wallet/util/merkle_tree.py +2 -3
  472. chia/wallet/util/peer_request_cache.py +8 -8
  473. chia/wallet/util/signing.py +85 -0
  474. chia/wallet/util/tx_config.py +15 -6
  475. chia/wallet/util/wallet_sync_utils.py +14 -16
  476. chia/wallet/util/wallet_types.py +2 -2
  477. chia/wallet/vc_wallet/cr_cat_drivers.py +10 -11
  478. chia/wallet/vc_wallet/cr_cat_wallet.py +50 -68
  479. chia/wallet/vc_wallet/cr_outer_puzzle.py +14 -13
  480. chia/wallet/vc_wallet/vc_drivers.py +27 -27
  481. chia/wallet/vc_wallet/vc_store.py +5 -6
  482. chia/wallet/vc_wallet/vc_wallet.py +33 -61
  483. chia/wallet/wallet.py +50 -78
  484. chia/wallet/wallet_action_scope.py +11 -11
  485. chia/wallet/wallet_blockchain.py +12 -12
  486. chia/wallet/wallet_coin_record.py +12 -6
  487. chia/wallet/wallet_coin_store.py +24 -25
  488. chia/wallet/wallet_interested_store.py +3 -5
  489. chia/wallet/wallet_nft_store.py +10 -11
  490. chia/wallet/wallet_node.py +53 -61
  491. chia/wallet/wallet_node_api.py +5 -3
  492. chia/wallet/wallet_protocol.py +23 -23
  493. chia/wallet/wallet_puzzle_store.py +15 -18
  494. chia/wallet/wallet_request_types.py +778 -114
  495. chia/wallet/wallet_retry_store.py +1 -3
  496. chia/wallet/wallet_rpc_api.py +572 -909
  497. chia/wallet/wallet_rpc_client.py +87 -279
  498. chia/wallet/wallet_singleton_store.py +3 -4
  499. chia/wallet/wallet_state_manager.py +332 -106
  500. chia/wallet/wallet_transaction_store.py +11 -14
  501. chia/wallet/wallet_user_store.py +4 -6
  502. chia/wallet/wallet_weight_proof_handler.py +4 -4
  503. {chia_blockchain-2.5.7rc4.dist-info → chia_blockchain-2.5.8rc1.dist-info}/METADATA +6 -5
  504. {chia_blockchain-2.5.7rc4.dist-info → chia_blockchain-2.5.8rc1.dist-info}/RECORD +507 -516
  505. chia/apis.py +0 -21
  506. chia/consensus/check_time_locks.py +0 -57
  507. chia/data_layer/puzzles/__init__.py +0 -0
  508. chia/data_layer/puzzles/graftroot_dl_offers.clsp +0 -100
  509. chia/data_layer/puzzles/graftroot_dl_offers.clsp.hex +0 -1
  510. chia/types/coin_record.py +0 -44
  511. chia/wallet/nft_wallet/puzzles/__init__.py +0 -0
  512. chia/wallet/nft_wallet/puzzles/create_nft_launcher_from_did.clsp +0 -6
  513. chia/wallet/nft_wallet/puzzles/create_nft_launcher_from_did.clsp.hex +0 -1
  514. chia/wallet/nft_wallet/puzzles/nft_intermediate_launcher.clsp +0 -6
  515. chia/wallet/nft_wallet/puzzles/nft_intermediate_launcher.clsp.hex +0 -1
  516. chia/wallet/nft_wallet/puzzles/nft_metadata_updater_default.clsp +0 -30
  517. chia/wallet/nft_wallet/puzzles/nft_metadata_updater_default.clsp.hex +0 -1
  518. chia/wallet/nft_wallet/puzzles/nft_metadata_updater_updateable.clsp +0 -28
  519. chia/wallet/nft_wallet/puzzles/nft_metadata_updater_updateable.clsp.hex +0 -1
  520. chia/wallet/nft_wallet/puzzles/nft_ownership_layer.clsp +0 -100
  521. chia/wallet/nft_wallet/puzzles/nft_ownership_layer.clsp.hex +0 -1
  522. chia/wallet/nft_wallet/puzzles/nft_ownership_transfer_program_one_way_claim_with_royalties.clsp +0 -78
  523. chia/wallet/nft_wallet/puzzles/nft_ownership_transfer_program_one_way_claim_with_royalties.clsp.hex +0 -1
  524. chia/wallet/nft_wallet/puzzles/nft_state_layer.clsp +0 -74
  525. chia/wallet/nft_wallet/puzzles/nft_state_layer.clsp.hex +0 -1
  526. {chia_blockchain-2.5.7rc4.dist-info → chia_blockchain-2.5.8rc1.dist-info}/WHEEL +0 -0
  527. {chia_blockchain-2.5.7rc4.dist-info → chia_blockchain-2.5.8rc1.dist-info}/entry_points.txt +0 -0
  528. {chia_blockchain-2.5.7rc4.dist-info → chia_blockchain-2.5.8rc1.dist-info}/licenses/LICENSE +0 -0
chia/cmds/data_funcs.py CHANGED
@@ -4,7 +4,7 @@ import contextlib
4
4
  import json
5
5
  from collections.abc import AsyncIterator
6
6
  from pathlib import Path
7
- from typing import Any, Optional
7
+ from typing import Any
8
8
 
9
9
  from chia_rs.sized_bytes import bytes32
10
10
  from chia_rs.sized_ints import uint64
@@ -17,7 +17,7 @@ from chia.util.default_root import resolve_root_path
17
17
 
18
18
  @contextlib.asynccontextmanager
19
19
  async def get_client(
20
- rpc_port: Optional[int], fingerprint: Optional[int] = None, root_path: Optional[Path] = None
20
+ rpc_port: int | None, fingerprint: int | None = None, root_path: Path | None = None
21
21
  ) -> AsyncIterator[tuple[DataLayerRpcClient, dict[str, Any]]]:
22
22
  root_path = resolve_root_path(override=root_path)
23
23
 
@@ -32,19 +32,19 @@ async def get_client(
32
32
 
33
33
 
34
34
  async def wallet_log_in_cmd(
35
- rpc_port: Optional[int],
35
+ rpc_port: int | None,
36
36
  fingerprint: int,
37
- root_path: Optional[Path] = None,
37
+ root_path: Path | None = None,
38
38
  ) -> None:
39
39
  async with get_client(rpc_port=rpc_port, fingerprint=fingerprint, root_path=root_path):
40
40
  pass
41
41
 
42
42
 
43
43
  async def create_data_store_cmd(
44
- rpc_port: Optional[int],
45
- fee: Optional[uint64],
44
+ rpc_port: int | None,
45
+ fee: uint64 | None,
46
46
  verbose: bool,
47
- fingerprint: Optional[int],
47
+ fingerprint: int | None,
48
48
  ) -> None:
49
49
  async with get_client(rpc_port=rpc_port, fingerprint=fingerprint) as (client, _):
50
50
  res = await client.create_data_store(fee=fee, verbose=verbose)
@@ -52,12 +52,12 @@ async def create_data_store_cmd(
52
52
 
53
53
 
54
54
  async def get_value_cmd(
55
- rpc_port: Optional[int],
55
+ rpc_port: int | None,
56
56
  store_id: bytes32,
57
57
  key: str,
58
58
  # NOTE: being outside the rpc, this retains the none-means-unspecified semantics
59
- root_hash: Optional[bytes32],
60
- fingerprint: Optional[int],
59
+ root_hash: bytes32 | None,
60
+ fingerprint: int | None,
61
61
  ) -> None:
62
62
  key_bytes = hexstr_to_bytes(key)
63
63
  async with get_client(rpc_port=rpc_port, fingerprint=fingerprint) as (client, _):
@@ -66,13 +66,13 @@ async def get_value_cmd(
66
66
 
67
67
 
68
68
  async def update_data_store_cmd(
69
- rpc_port: Optional[int],
69
+ rpc_port: int | None,
70
70
  store_id: bytes32,
71
71
  changelist: list[dict[str, str]],
72
- fee: Optional[uint64],
73
- fingerprint: Optional[int],
72
+ fee: uint64 | None,
73
+ fingerprint: int | None,
74
74
  submit_on_chain: bool,
75
- root_path: Optional[Path] = None,
75
+ root_path: Path | None = None,
76
76
  ) -> dict[str, Any]:
77
77
  res = dict()
78
78
  async with get_client(rpc_port=rpc_port, fingerprint=fingerprint, root_path=root_path) as (client, _):
@@ -88,12 +88,12 @@ async def update_data_store_cmd(
88
88
 
89
89
 
90
90
  async def update_multiple_stores_cmd(
91
- rpc_port: Optional[int],
91
+ rpc_port: int | None,
92
92
  store_updates: list[dict[str, str]],
93
- fee: Optional[uint64],
94
- fingerprint: Optional[int],
93
+ fee: uint64 | None,
94
+ fingerprint: int | None,
95
95
  submit_on_chain: bool,
96
- root_path: Optional[Path] = None,
96
+ root_path: Path | None = None,
97
97
  ) -> dict[str, Any]:
98
98
  res = dict()
99
99
 
@@ -109,11 +109,11 @@ async def update_multiple_stores_cmd(
109
109
 
110
110
 
111
111
  async def submit_pending_root_cmd(
112
- rpc_port: Optional[int],
112
+ rpc_port: int | None,
113
113
  store_id: bytes32,
114
- fee: Optional[uint64],
115
- fingerprint: Optional[int],
116
- root_path: Optional[Path] = None,
114
+ fee: uint64 | None,
115
+ fingerprint: int | None,
116
+ root_path: Path | None = None,
117
117
  ) -> dict[str, Any]:
118
118
  res = dict()
119
119
  async with get_client(rpc_port=rpc_port, fingerprint=fingerprint, root_path=root_path) as (client, _):
@@ -127,10 +127,10 @@ async def submit_pending_root_cmd(
127
127
 
128
128
 
129
129
  async def submit_all_pending_roots_cmd(
130
- rpc_port: Optional[int],
131
- fee: Optional[uint64],
132
- fingerprint: Optional[int],
133
- root_path: Optional[Path] = None,
130
+ rpc_port: int | None,
131
+ fee: uint64 | None,
132
+ fingerprint: int | None,
133
+ root_path: Path | None = None,
134
134
  ) -> dict[str, Any]:
135
135
  res = dict()
136
136
  async with get_client(rpc_port=rpc_port, fingerprint=fingerprint, root_path=root_path) as (client, _):
@@ -141,14 +141,14 @@ async def submit_all_pending_roots_cmd(
141
141
 
142
142
 
143
143
  async def get_keys_cmd(
144
- rpc_port: Optional[int],
144
+ rpc_port: int | None,
145
145
  store_id: bytes32,
146
146
  # NOTE: being outside the rpc, this retains the none-means-unspecified semantics
147
- root_hash: Optional[bytes32],
148
- fingerprint: Optional[int],
149
- page: Optional[int],
150
- max_page_size: Optional[int],
151
- root_path: Optional[Path] = None,
147
+ root_hash: bytes32 | None,
148
+ fingerprint: int | None,
149
+ page: int | None,
150
+ max_page_size: int | None,
151
+ root_path: Path | None = None,
152
152
  ) -> dict[str, Any]:
153
153
  res = dict()
154
154
  async with get_client(rpc_port=rpc_port, fingerprint=fingerprint, root_path=root_path) as (client, _):
@@ -159,14 +159,14 @@ async def get_keys_cmd(
159
159
 
160
160
 
161
161
  async def get_keys_values_cmd(
162
- rpc_port: Optional[int],
162
+ rpc_port: int | None,
163
163
  store_id: bytes32,
164
164
  # NOTE: being outside the rpc, this retains the none-means-unspecified semantics
165
- root_hash: Optional[bytes32],
166
- fingerprint: Optional[int],
167
- page: Optional[int],
168
- max_page_size: Optional[int],
169
- root_path: Optional[Path] = None,
165
+ root_hash: bytes32 | None,
166
+ fingerprint: int | None,
167
+ page: int | None,
168
+ max_page_size: int | None,
169
+ root_path: Path | None = None,
170
170
  ) -> dict[str, Any]:
171
171
  res = dict()
172
172
  async with get_client(rpc_port=rpc_port, fingerprint=fingerprint, root_path=root_path) as (client, _):
@@ -179,9 +179,9 @@ async def get_keys_values_cmd(
179
179
 
180
180
 
181
181
  async def get_root_cmd(
182
- rpc_port: Optional[int],
182
+ rpc_port: int | None,
183
183
  store_id: bytes32,
184
- fingerprint: Optional[int],
184
+ fingerprint: int | None,
185
185
  ) -> None:
186
186
  async with get_client(rpc_port=rpc_port, fingerprint=fingerprint) as (client, _):
187
187
  res = await client.get_root(store_id=store_id)
@@ -189,10 +189,10 @@ async def get_root_cmd(
189
189
 
190
190
 
191
191
  async def subscribe_cmd(
192
- rpc_port: Optional[int],
192
+ rpc_port: int | None,
193
193
  store_id: bytes32,
194
194
  urls: list[str],
195
- fingerprint: Optional[int],
195
+ fingerprint: int | None,
196
196
  ) -> None:
197
197
  async with get_client(rpc_port=rpc_port, fingerprint=fingerprint) as (client, _):
198
198
  res = await client.subscribe(store_id=store_id, urls=urls)
@@ -200,9 +200,9 @@ async def subscribe_cmd(
200
200
 
201
201
 
202
202
  async def unsubscribe_cmd(
203
- rpc_port: Optional[int],
203
+ rpc_port: int | None,
204
204
  store_id: bytes32,
205
- fingerprint: Optional[int],
205
+ fingerprint: int | None,
206
206
  retain: bool,
207
207
  ) -> None:
208
208
  async with get_client(rpc_port=rpc_port, fingerprint=fingerprint) as (client, _):
@@ -211,10 +211,10 @@ async def unsubscribe_cmd(
211
211
 
212
212
 
213
213
  async def remove_subscriptions_cmd(
214
- rpc_port: Optional[int],
214
+ rpc_port: int | None,
215
215
  store_id: bytes32,
216
216
  urls: list[str],
217
- fingerprint: Optional[int],
217
+ fingerprint: int | None,
218
218
  ) -> None:
219
219
  async with get_client(rpc_port=rpc_port, fingerprint=fingerprint) as (client, _):
220
220
  res = await client.remove_subscriptions(store_id=store_id, urls=urls)
@@ -222,14 +222,14 @@ async def remove_subscriptions_cmd(
222
222
 
223
223
 
224
224
  async def get_kv_diff_cmd(
225
- rpc_port: Optional[int],
225
+ rpc_port: int | None,
226
226
  store_id: bytes32,
227
227
  hash_1: bytes32,
228
228
  hash_2: bytes32,
229
- fingerprint: Optional[int],
230
- page: Optional[int],
231
- max_page_size: Optional[int],
232
- root_path: Optional[Path] = None,
229
+ fingerprint: int | None,
230
+ page: int | None,
231
+ max_page_size: int | None,
232
+ root_path: Path | None = None,
233
233
  ) -> dict[str, Any]:
234
234
  res = dict()
235
235
  async with get_client(rpc_port=rpc_port, fingerprint=fingerprint, root_path=root_path) as (client, _):
@@ -242,9 +242,9 @@ async def get_kv_diff_cmd(
242
242
 
243
243
 
244
244
  async def get_root_history_cmd(
245
- rpc_port: Optional[int],
245
+ rpc_port: int | None,
246
246
  store_id: bytes32,
247
- fingerprint: Optional[int],
247
+ fingerprint: int | None,
248
248
  ) -> None:
249
249
  async with get_client(rpc_port=rpc_port, fingerprint=fingerprint) as (client, _):
250
250
  res = await client.get_root_history(store_id=store_id)
@@ -252,11 +252,11 @@ async def get_root_history_cmd(
252
252
 
253
253
 
254
254
  async def add_missing_files_cmd(
255
- rpc_port: Optional[int],
256
- ids: Optional[list[bytes32]],
255
+ rpc_port: int | None,
256
+ ids: list[bytes32] | None,
257
257
  overwrite: bool,
258
- foldername: Optional[Path],
259
- fingerprint: Optional[int],
258
+ foldername: Path | None,
259
+ fingerprint: int | None,
260
260
  ) -> None:
261
261
  async with get_client(rpc_port=rpc_port, fingerprint=fingerprint) as (client, _):
262
262
  res = await client.add_missing_files(
@@ -268,12 +268,12 @@ async def add_missing_files_cmd(
268
268
 
269
269
 
270
270
  async def add_mirror_cmd(
271
- rpc_port: Optional[int],
271
+ rpc_port: int | None,
272
272
  store_id: bytes32,
273
273
  urls: list[str],
274
274
  amount: int,
275
- fee: Optional[uint64],
276
- fingerprint: Optional[int],
275
+ fee: uint64 | None,
276
+ fingerprint: int | None,
277
277
  ) -> None:
278
278
  async with get_client(rpc_port=rpc_port, fingerprint=fingerprint) as (client, _):
279
279
  res = await client.add_mirror(
@@ -286,10 +286,10 @@ async def add_mirror_cmd(
286
286
 
287
287
 
288
288
  async def delete_mirror_cmd(
289
- rpc_port: Optional[int],
289
+ rpc_port: int | None,
290
290
  coin_id: bytes32,
291
- fee: Optional[uint64],
292
- fingerprint: Optional[int],
291
+ fee: uint64 | None,
292
+ fingerprint: int | None,
293
293
  ) -> None:
294
294
  async with get_client(rpc_port=rpc_port, fingerprint=fingerprint) as (client, _):
295
295
  res = await client.delete_mirror(
@@ -300,9 +300,9 @@ async def delete_mirror_cmd(
300
300
 
301
301
 
302
302
  async def get_mirrors_cmd(
303
- rpc_port: Optional[int],
303
+ rpc_port: int | None,
304
304
  store_id: bytes32,
305
- fingerprint: Optional[int],
305
+ fingerprint: int | None,
306
306
  ) -> None:
307
307
  async with get_client(rpc_port=rpc_port, fingerprint=fingerprint) as (client, _):
308
308
  res = await client.get_mirrors(store_id=store_id)
@@ -310,8 +310,8 @@ async def get_mirrors_cmd(
310
310
 
311
311
 
312
312
  async def get_subscriptions_cmd(
313
- rpc_port: Optional[int],
314
- fingerprint: Optional[int],
313
+ rpc_port: int | None,
314
+ fingerprint: int | None,
315
315
  ) -> None:
316
316
  async with get_client(rpc_port=rpc_port, fingerprint=fingerprint) as (client, _):
317
317
  res = await client.get_subscriptions()
@@ -319,8 +319,8 @@ async def get_subscriptions_cmd(
319
319
 
320
320
 
321
321
  async def get_owned_stores_cmd(
322
- rpc_port: Optional[int],
323
- fingerprint: Optional[int],
322
+ rpc_port: int | None,
323
+ fingerprint: int | None,
324
324
  ) -> None:
325
325
  async with get_client(rpc_port=rpc_port, fingerprint=fingerprint) as (client, _):
326
326
  res = await client.get_owned_stores()
@@ -328,16 +328,16 @@ async def get_owned_stores_cmd(
328
328
 
329
329
 
330
330
  async def get_sync_status_cmd(
331
- rpc_port: Optional[int],
331
+ rpc_port: int | None,
332
332
  store_id: bytes32,
333
- fingerprint: Optional[int],
333
+ fingerprint: int | None,
334
334
  ) -> None:
335
335
  async with get_client(rpc_port=rpc_port, fingerprint=fingerprint) as (client, _):
336
336
  res = await client.get_sync_status(store_id=store_id)
337
337
  print(json.dumps(res, indent=2, sort_keys=True))
338
338
 
339
339
 
340
- async def check_plugins_cmd(rpc_port: Optional[int]) -> None:
340
+ async def check_plugins_cmd(rpc_port: int | None) -> None:
341
341
  async with get_client(rpc_port=rpc_port) as (client, _):
342
342
  res = await client.check_plugins()
343
343
  print(json.dumps(res, indent=2, sort_keys=True))
@@ -345,9 +345,9 @@ async def check_plugins_cmd(rpc_port: Optional[int]) -> None:
345
345
 
346
346
  async def clear_pending_roots(
347
347
  store_id: bytes32,
348
- rpc_port: Optional[int],
349
- root_path: Optional[Path] = None,
350
- fingerprint: Optional[int] = None,
348
+ rpc_port: int | None,
349
+ root_path: Path | None = None,
350
+ fingerprint: int | None = None,
351
351
  ) -> dict[str, Any]:
352
352
  result = dict()
353
353
  async with get_client(rpc_port=rpc_port, fingerprint=fingerprint, root_path=root_path) as (client, _):
@@ -360,9 +360,9 @@ async def clear_pending_roots(
360
360
  async def get_proof_cmd(
361
361
  store_id: bytes32,
362
362
  key_strings: list[str],
363
- rpc_port: Optional[int],
364
- root_path: Optional[Path] = None,
365
- fingerprint: Optional[int] = None,
363
+ rpc_port: int | None,
364
+ root_path: Path | None = None,
365
+ fingerprint: int | None = None,
366
366
  ) -> dict[str, Any]:
367
367
  result = dict()
368
368
  async with get_client(rpc_port=rpc_port, fingerprint=fingerprint, root_path=root_path) as (client, _):
@@ -374,9 +374,9 @@ async def get_proof_cmd(
374
374
 
375
375
  async def verify_proof_cmd(
376
376
  proof: dict[str, Any],
377
- rpc_port: Optional[int],
378
- root_path: Optional[Path] = None,
379
- fingerprint: Optional[int] = None,
377
+ rpc_port: int | None,
378
+ root_path: Path | None = None,
379
+ fingerprint: int | None = None,
380
380
  ) -> dict[str, Any]:
381
381
  result = dict()
382
382
  async with get_client(rpc_port=rpc_port, fingerprint=fingerprint, root_path=root_path) as (client, _):
chia/cmds/db.py CHANGED
@@ -1,7 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  from pathlib import Path
4
- from typing import Optional
5
4
 
6
5
  import click
7
6
 
@@ -35,8 +34,8 @@ def db_cmd() -> None:
35
34
  @click.pass_context
36
35
  def db_upgrade_cmd(
37
36
  ctx: click.Context,
38
- in_db_path: Optional[str],
39
- out_db_path: Optional[str],
37
+ in_db_path: str | None,
38
+ out_db_path: str | None,
40
39
  no_update_config: bool,
41
40
  force: bool,
42
41
  ) -> None:
@@ -61,7 +60,7 @@ def db_upgrade_cmd(
61
60
  help="validate consistency of properties of the encoded blocks and block records",
62
61
  )
63
62
  @click.pass_context
64
- def db_validate_cmd(ctx: click.Context, in_db_path: Optional[str], validate_blocks: bool) -> None:
63
+ def db_validate_cmd(ctx: click.Context, in_db_path: str | None, validate_blocks: bool) -> None:
65
64
  try:
66
65
  db_validate_func(
67
66
  ChiaCliContext.set_default(ctx).root_path,
@@ -76,7 +75,7 @@ def db_validate_cmd(ctx: click.Context, in_db_path: Optional[str], validate_bloc
76
75
  @click.option("--backup_file", "db_backup_file", default=None, type=click.Path(), help="Specifies the backup file")
77
76
  @click.option("--no_indexes", default=False, is_flag=True, help="Create backup without indexes")
78
77
  @click.pass_context
79
- def db_backup_cmd(ctx: click.Context, db_backup_file: Optional[str], no_indexes: bool) -> None:
78
+ def db_backup_cmd(ctx: click.Context, db_backup_file: str | None, no_indexes: bool) -> None:
80
79
  try:
81
80
  db_backup_func(
82
81
  ChiaCliContext.set_default(ctx).root_path,
@@ -1,7 +1,7 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  from pathlib import Path
4
- from typing import Any, Optional
4
+ from typing import Any
5
5
 
6
6
  from chia.util.config import load_config
7
7
  from chia.util.path import path_from_root
@@ -9,7 +9,7 @@ from chia.util.path import path_from_root
9
9
 
10
10
  def db_backup_func(
11
11
  root_path: Path,
12
- backup_db_file: Optional[Path] = None,
12
+ backup_db_file: Path | None = None,
13
13
  *,
14
14
  no_indexes: bool,
15
15
  ) -> None:
@@ -10,7 +10,7 @@ import textwrap
10
10
  from contextlib import closing
11
11
  from pathlib import Path
12
12
  from time import monotonic
13
- from typing import Any, Optional
13
+ from typing import Any
14
14
 
15
15
  import zstd
16
16
 
@@ -25,8 +25,8 @@ from chia.util.path import path_from_root
25
25
  # the configuration file also be updated
26
26
  def db_upgrade_func(
27
27
  root_path: Path,
28
- in_db_path: Optional[Path] = None,
29
- out_db_path: Optional[Path] = None,
28
+ in_db_path: Path | None = None,
29
+ out_db_path: Path | None = None,
30
30
  *,
31
31
  no_update_config: bool = False,
32
32
  force: bool = False,
@@ -1,7 +1,7 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  from pathlib import Path
4
- from typing import Any, Optional
4
+ from typing import Any
5
5
 
6
6
  from chia_rs import BlockRecord, FullBlock
7
7
  from chia_rs.sized_bytes import bytes32
@@ -14,7 +14,7 @@ from chia.util.path import path_from_root
14
14
 
15
15
  def db_validate_func(
16
16
  root_path: Path,
17
- in_db_path: Optional[Path] = None,
17
+ in_db_path: Path | None = None,
18
18
  *,
19
19
  validate_blocks: bool,
20
20
  ) -> None:
chia/cmds/dev/data.py CHANGED
@@ -11,7 +11,7 @@ import tempfile
11
11
  import time
12
12
  from dataclasses import field
13
13
  from pathlib import Path
14
- from typing import Any, Optional
14
+ from typing import Any
15
15
 
16
16
  import aiohttp
17
17
  import anyio
@@ -40,8 +40,8 @@ class NonZeroReturnCodeError(Exception):
40
40
  @dataclasses.dataclass
41
41
  class RunResult:
42
42
  process: asyncio.subprocess.Process
43
- stdout: Optional[str]
44
- stderr: Optional[str]
43
+ stdout: str | None
44
+ stderr: str | None
45
45
 
46
46
 
47
47
  @click.group("data", help="For working with DataLayer")
@@ -77,7 +77,7 @@ class SyncTimeCommand:
77
77
  store_id: bytes32 = option("--store-id", required=True)
78
78
  profile_tasks: bool = option("--profile-tasks/--no-profile-tasks")
79
79
  restart_all: bool = option("--restart-all/--no-restart-all")
80
- working_path: Optional[Path] = option("--working-path", default=None)
80
+ working_path: Path | None = option("--working-path", default=None)
81
81
  prefer_db_kv_blob_length: int = option(
82
82
  "--prefer-db-kv-blob-length",
83
83
  default=default_prefer_file_kv_blob_length,
chia/cmds/dev/gh.py CHANGED
@@ -6,9 +6,9 @@ import shlex
6
6
  import urllib
7
7
  import uuid
8
8
  import webbrowser
9
- from collections.abc import Sequence
9
+ from collections.abc import Callable, Sequence
10
10
  from pathlib import Path
11
- from typing import Callable, ClassVar, Literal, Optional, overload
11
+ from typing import ClassVar, Literal, overload
12
12
 
13
13
  import anyio
14
14
  import click
@@ -51,7 +51,7 @@ async def run_gh_api(method: Method, args: list[str], error: str, capture_stdout
51
51
  async def run_gh_api(method: Method, args: list[str], error: str, capture_stdout: Literal[True]) -> str: ...
52
52
 
53
53
 
54
- async def run_gh_api(method: Method, args: list[str], error: str, capture_stdout: bool = False) -> Optional[str]:
54
+ async def run_gh_api(method: Method, args: list[str], error: str, capture_stdout: bool = False) -> str | None:
55
55
  command = [
56
56
  "gh",
57
57
  "api",
@@ -112,7 +112,7 @@ class TestCMD:
112
112
  workflow_id: ClassVar[str] = "test.yml"
113
113
  owner: str = option("-w", "--owner", help="Owner of the repo", type=str, default="Chia-Network")
114
114
  repository: str = option("-r", "--repository", help="Repository name", type=str, default="chia-blockchain")
115
- ref: Optional[str] = option(
115
+ ref: str | None = option(
116
116
  "-f",
117
117
  "--ref",
118
118
  help="Branch or tag name (commit SHA not supported), if not specified will push HEAD to a temporary branch",
@@ -120,7 +120,7 @@ class TestCMD:
120
120
  default=None,
121
121
  )
122
122
  per: Per = option("-p", "--per", help="Per", type=click.Choice(["directory", "file"]), default="directory")
123
- only: Optional[Path] = option(
123
+ only: Path | None = option(
124
124
  "-o", "--only", help="Only run this item, a file or directory depending on --per", type=Path
125
125
  )
126
126
  duplicates: int = option("-d", "--duplicates", help="Number of duplicates", type=int, default=1)
@@ -3,7 +3,6 @@ from __future__ import annotations
3
3
  import json
4
4
  import subprocess
5
5
  import tempfile
6
- from typing import Optional
7
6
 
8
7
  import click
9
8
  import packaging.version
@@ -22,8 +21,8 @@ def check_plotter(plotter: list[str], expected_output: bytes, specify_tmp: bool
22
21
  stderr=subprocess.PIPE,
23
22
  stdout=subprocess.PIPE,
24
23
  )
25
- out: Optional[bytes]
26
- err: Optional[bytes]
24
+ out: bytes | None
25
+ err: bytes | None
27
26
  try:
28
27
  out, err = process.communicate(timeout=2)
29
28
  except subprocess.TimeoutExpired as e:
chia/cmds/dev/mempool.py CHANGED
@@ -1,7 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import json
4
- from typing import Optional
5
4
 
6
5
  import click
7
6
 
@@ -27,7 +26,7 @@ def mempool_cmd(ctx: click.Context) -> None:
27
26
  )
28
27
  @click.argument("path", type=str)
29
28
  @click.pass_context
30
- def import_mempool_cmd(ctx: click.Context, rpc_port: Optional[int], path: str) -> None:
29
+ def import_mempool_cmd(ctx: click.Context, rpc_port: int | None, path: str) -> None:
31
30
  import asyncio
32
31
 
33
32
  with open(path) as file:
@@ -50,7 +49,7 @@ def import_mempool_cmd(ctx: click.Context, rpc_port: Optional[int], path: str) -
50
49
  )
51
50
  @click.argument("path", type=str)
52
51
  @click.pass_context
53
- def export_mempool_cmd(ctx: click.Context, rpc_port: Optional[int], path: str) -> None:
52
+ def export_mempool_cmd(ctx: click.Context, rpc_port: int | None, path: str) -> None:
54
53
  import asyncio
55
54
 
56
55
  asyncio.run(export_mempool_async(rpc_port, ChiaCliContext.set_default(ctx).root_path, path))
@@ -67,7 +66,7 @@ def export_mempool_cmd(ctx: click.Context, rpc_port: Optional[int], path: str) -
67
66
  default=None,
68
67
  )
69
68
  @click.pass_context
70
- def create_block_cmd(ctx: click.Context, rpc_port: Optional[int]) -> None:
69
+ def create_block_cmd(ctx: click.Context, rpc_port: int | None) -> None:
71
70
  import asyncio
72
71
 
73
72
  asyncio.run(create_block_async(rpc_port, ChiaCliContext.set_default(ctx).root_path))
@@ -3,7 +3,7 @@ from __future__ import annotations
3
3
  import json
4
4
  import time
5
5
  from pathlib import Path
6
- from typing import Any, Optional
6
+ from typing import Any
7
7
 
8
8
  from chia_rs import SpendBundle
9
9
 
@@ -11,7 +11,7 @@ from chia.full_node.full_node_rpc_client import FullNodeRpcClient
11
11
 
12
12
 
13
13
  async def import_mempool_async(
14
- rpc_port: Optional[int],
14
+ rpc_port: int | None,
15
15
  root_path: Path,
16
16
  content: dict[str, Any],
17
17
  ) -> None:
@@ -32,7 +32,7 @@ async def import_mempool_async(
32
32
 
33
33
 
34
34
  async def export_mempool_async(
35
- rpc_port: Optional[int],
35
+ rpc_port: int | None,
36
36
  root_path: Path,
37
37
  path: str,
38
38
  ) -> None:
@@ -49,7 +49,7 @@ async def export_mempool_async(
49
49
 
50
50
 
51
51
  async def create_block_async(
52
- rpc_port: Optional[int],
52
+ rpc_port: int | None,
53
53
  root_path: Path,
54
54
  ) -> None:
55
55
  from chia.cmds.cmds_util import get_any_service_client
chia/cmds/dev/sim.py CHANGED
@@ -2,7 +2,7 @@ from __future__ import annotations
2
2
 
3
3
  import asyncio
4
4
  from pathlib import Path
5
- from typing import Any, Optional
5
+ from typing import Any
6
6
 
7
7
  import click
8
8
 
@@ -33,7 +33,7 @@ from chia.util.default_root import SIMULATOR_ROOT_PATH
33
33
  default="main",
34
34
  )
35
35
  @click.pass_context
36
- def sim_cmd(ctx: click.Context, rpc_port: Optional[int], root_path: str, simulator_name: str) -> None:
36
+ def sim_cmd(ctx: click.Context, rpc_port: int | None, root_path: str, simulator_name: str) -> None:
37
37
  context = ChiaCliContext.set_default(ctx)
38
38
  context.root_path = Path(root_path) / simulator_name
39
39
  context.rpc_port = rpc_port
@@ -64,11 +64,11 @@ def sim_cmd(ctx: click.Context, rpc_port: Optional[int], root_path: str, simulat
64
64
  @click.pass_context
65
65
  def create_simulator_config(
66
66
  ctx: click.Context,
67
- fingerprint: Optional[int],
68
- reward_address: Optional[str],
69
- plot_directory: Optional[str],
70
- mnemonic: Optional[str],
71
- auto_farm: Optional[bool],
67
+ fingerprint: int | None,
68
+ reward_address: str | None,
69
+ plot_directory: str | None,
70
+ mnemonic: str | None,
71
+ auto_farm: bool | None,
72
72
  docker_mode: bool,
73
73
  no_bitfield: bool,
74
74
  ) -> None:
@@ -126,7 +126,7 @@ def sim_stop_cmd(ctx: click.Context, daemon: bool, wallet: bool) -> None:
126
126
  @click.pass_context
127
127
  def status_cmd(
128
128
  ctx: click.Context,
129
- fingerprint: Optional[int],
129
+ fingerprint: int | None,
130
130
  show_key: bool,
131
131
  show_coins: bool,
132
132
  include_rewards: bool,