chia-blockchain 2.5.7rc4__py3-none-any.whl → 2.6.0rc2__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 (531) 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_blockchain_transactions.py +5 -2
  6. chia/_tests/blockchain/test_build_chains.py +2 -4
  7. chia/_tests/blockchain/test_get_block_generator.py +2 -3
  8. chia/_tests/clvm/coin_store.py +4 -7
  9. chia/_tests/clvm/test_clvm_step.py +4 -4
  10. chia/_tests/clvm/test_puzzle_compression.py +2 -1
  11. chia/_tests/clvm/test_puzzle_drivers.py +2 -2
  12. chia/_tests/clvm/test_singletons.py +2 -4
  13. chia/_tests/clvm/test_spend_sim.py +2 -2
  14. chia/_tests/cmds/cmd_test_utils.py +27 -45
  15. chia/_tests/cmds/test_cmd_framework.py +6 -6
  16. chia/_tests/cmds/test_daemon.py +3 -3
  17. chia/_tests/cmds/test_show.py +4 -4
  18. chia/_tests/cmds/test_tx_config_args.py +1 -2
  19. chia/_tests/cmds/testing_classes.py +4 -5
  20. chia/_tests/cmds/wallet/test_did.py +24 -27
  21. chia/_tests/cmds/wallet/test_nft.py +12 -10
  22. chia/_tests/cmds/wallet/test_vcs.py +11 -12
  23. chia/_tests/cmds/wallet/test_wallet.py +134 -89
  24. chia/_tests/conftest.py +66 -31
  25. chia/_tests/connection_utils.py +2 -2
  26. chia/_tests/core/cmds/test_beta.py +4 -4
  27. chia/_tests/core/cmds/test_keys.py +2 -3
  28. chia/_tests/core/cmds/test_wallet.py +15 -15
  29. chia/_tests/core/consensus/test_pot_iterations.py +19 -73
  30. chia/_tests/core/custom_types/test_proof_of_space.py +124 -98
  31. chia/_tests/core/daemon/test_daemon.py +11 -11
  32. chia/_tests/core/data_layer/conftest.py +2 -2
  33. chia/_tests/core/data_layer/test_data_rpc.py +28 -14
  34. chia/_tests/core/data_layer/test_data_store.py +10 -10
  35. chia/_tests/core/data_layer/util.py +11 -11
  36. chia/_tests/core/farmer/test_farmer_api.py +2 -4
  37. chia/_tests/core/full_node/full_sync/test_full_sync.py +8 -7
  38. chia/_tests/core/full_node/stores/test_block_store.py +5 -4
  39. chia/_tests/core/full_node/stores/test_coin_store.py +5 -11
  40. chia/_tests/core/full_node/stores/test_full_node_store.py +8 -8
  41. chia/_tests/core/full_node/stores/test_hint_store.py +2 -2
  42. chia/_tests/core/full_node/test_block_height_map.py +3 -4
  43. chia/_tests/core/full_node/test_conditions.py +21 -23
  44. chia/_tests/core/full_node/test_full_node.py +273 -70
  45. chia/_tests/core/full_node/test_hard_fork_utils.py +92 -0
  46. chia/_tests/core/full_node/test_hint_management.py +2 -4
  47. chia/_tests/core/full_node/test_performance.py +0 -1
  48. chia/_tests/core/full_node/test_prev_tx_block.py +88 -11
  49. chia/_tests/core/full_node/test_transactions.py +1 -2
  50. chia/_tests/core/full_node/test_tx_processing_queue.py +198 -30
  51. chia/_tests/core/mempool/test_mempool.py +54 -50
  52. chia/_tests/core/mempool/test_mempool_fee_estimator.py +39 -39
  53. chia/_tests/core/mempool/test_mempool_fee_protocol.py +2 -6
  54. chia/_tests/core/mempool/test_mempool_manager.py +988 -854
  55. chia/_tests/core/mempool/test_singleton_fast_forward.py +6 -6
  56. chia/_tests/core/server/serve.py +7 -7
  57. chia/_tests/core/server/test_dos.py +1 -2
  58. chia/_tests/core/server/test_event_loop.py +12 -4
  59. chia/_tests/core/server/test_loop.py +7 -8
  60. chia/_tests/core/server/test_rate_limits.py +9 -8
  61. chia/_tests/core/server/test_server.py +61 -1
  62. chia/_tests/core/services/test_services.py +2 -2
  63. chia/_tests/core/ssl/test_ssl.py +2 -2
  64. chia/_tests/core/test_cost_calculation.py +2 -6
  65. chia/_tests/core/test_farmer_harvester_rpc.py +3 -5
  66. chia/_tests/core/test_filter.py +0 -1
  67. chia/_tests/core/test_full_node_rpc.py +2 -2
  68. chia/_tests/core/test_merkle_set.py +1 -2
  69. chia/_tests/core/test_seeder.py +4 -4
  70. chia/_tests/core/util/test_config.py +4 -4
  71. chia/_tests/core/util/test_jsonify.py +2 -2
  72. chia/_tests/core/util/test_keychain.py +3 -3
  73. chia/_tests/core/util/test_lockfile.py +2 -1
  74. chia/_tests/core/util/test_log_exceptions.py +1 -2
  75. chia/_tests/core/util/test_streamable.py +17 -17
  76. chia/_tests/db/test_db_wrapper.py +3 -2
  77. chia/_tests/environments/wallet.py +14 -14
  78. chia/_tests/ether.py +4 -3
  79. chia/_tests/farmer_harvester/test_farmer.py +41 -24
  80. chia/_tests/farmer_harvester/test_farmer_harvester.py +50 -17
  81. chia/_tests/farmer_harvester/test_filter_prefix_bits.py +27 -27
  82. chia/_tests/farmer_harvester/test_third_party_harvesters.py +21 -22
  83. chia/_tests/fee_estimation/test_fee_estimation_integration.py +18 -18
  84. chia/_tests/fee_estimation/test_fee_estimation_rpc.py +11 -9
  85. chia/_tests/harvester/test_harvester_api.py +11 -4
  86. chia/_tests/plot_sync/test_plot_sync.py +13 -11
  87. chia/_tests/plot_sync/test_receiver.py +11 -10
  88. chia/_tests/plot_sync/test_sync_simulated.py +2 -2
  89. chia/_tests/plot_sync/util.py +1 -2
  90. chia/_tests/plotting/test_plot_manager.py +7 -6
  91. chia/_tests/plotting/test_prover.py +30 -38
  92. chia/_tests/pools/test_pool_cmdline.py +4 -6
  93. chia/_tests/pools/test_pool_rpc.py +203 -61
  94. chia/_tests/pools/test_pool_wallet.py +3 -3
  95. chia/_tests/pools/test_wallet_pool_store.py +1 -4
  96. chia/_tests/process_junit.py +2 -2
  97. chia/_tests/rpc/test_rpc_client.py +4 -4
  98. chia/_tests/rpc/test_rpc_server.py +3 -3
  99. chia/_tests/simulation/test_simulation.py +12 -25
  100. chia/_tests/solver/test_solver_service.py +13 -4
  101. chia/_tests/testconfig.py +2 -2
  102. chia/_tests/timelord/test_new_peak.py +22 -11
  103. chia/_tests/tools/test_run_block.py +0 -2
  104. chia/_tests/tools/test_virtual_project.py +2 -1
  105. chia/_tests/util/benchmarks.py +1 -0
  106. chia/_tests/util/blockchain.py +38 -36
  107. chia/_tests/util/blockchain_mock.py +11 -11
  108. chia/_tests/util/build_network_protocol_files.py +2 -1
  109. chia/_tests/util/coin_store.py +2 -1
  110. chia/_tests/util/config.py +1 -1
  111. chia/_tests/util/db_connection.py +2 -3
  112. chia/_tests/util/full_sync.py +9 -11
  113. chia/_tests/util/gen_ssl_certs.py +4 -5
  114. chia/_tests/util/get_name_puzzle_conditions.py +2 -0
  115. chia/_tests/util/misc.py +24 -24
  116. chia/_tests/util/network_protocol_data.py +20 -3
  117. chia/_tests/util/protocol_messages_bytes-v1.0 +0 -0
  118. chia/_tests/util/protocol_messages_json.py +292 -3
  119. chia/_tests/util/setup_nodes.py +62 -47
  120. chia/_tests/util/spend_sim.py +57 -57
  121. chia/_tests/util/test_async_pool.py +2 -3
  122. chia/_tests/util/test_chia_version.py +1 -3
  123. chia/_tests/util/test_config.py +3 -3
  124. chia/_tests/util/test_full_block_utils.py +6 -3
  125. chia/_tests/util/test_limited_semaphore.py +1 -2
  126. chia/_tests/util/test_misc.py +2 -2
  127. chia/_tests/util/test_network.py +1 -2
  128. chia/_tests/util/test_priority_mutex.py +3 -3
  129. chia/_tests/util/test_recursive_replace.py +5 -6
  130. chia/_tests/util/test_replace_str_to_bytes.py +9 -10
  131. chia/_tests/util/test_testnet_overrides.py +3 -3
  132. chia/_tests/util/time_out_assert.py +2 -2
  133. chia/_tests/wallet/cat_wallet/test_cat_lifecycle.py +4 -6
  134. chia/_tests/wallet/cat_wallet/test_cat_outer_puzzle.py +2 -4
  135. chia/_tests/wallet/cat_wallet/test_cat_wallet.py +19 -13
  136. chia/_tests/wallet/cat_wallet/test_offer_lifecycle.py +13 -13
  137. chia/_tests/wallet/cat_wallet/test_trades.py +40 -38
  138. chia/_tests/wallet/clawback/test_clawback_lifecycle.py +2 -4
  139. chia/_tests/wallet/conftest.py +6 -6
  140. chia/_tests/wallet/db_wallet/test_db_graftroot.py +1 -1
  141. chia/_tests/wallet/db_wallet/test_dl_offers.py +34 -34
  142. chia/_tests/wallet/did_wallet/test_did.py +16 -6
  143. chia/_tests/wallet/nft_wallet/test_nft_1_offers.py +21 -21
  144. chia/_tests/wallet/nft_wallet/test_nft_bulk_mint.py +20 -6
  145. chia/_tests/wallet/nft_wallet/test_nft_offers.py +19 -21
  146. chia/_tests/wallet/nft_wallet/test_nft_puzzles.py +1 -2
  147. chia/_tests/wallet/nft_wallet/test_nft_wallet.py +121 -2
  148. chia/_tests/wallet/nft_wallet/test_ownership_outer_puzzle.py +6 -9
  149. chia/_tests/wallet/rpc/test_dl_wallet_rpc.py +44 -1
  150. chia/_tests/wallet/rpc/test_wallet_rpc.py +1672 -896
  151. chia/_tests/wallet/sync/test_wallet_sync.py +63 -60
  152. chia/_tests/wallet/test_clvm_streamable.py +2 -3
  153. chia/_tests/wallet/test_coin_management.py +2 -2
  154. chia/_tests/wallet/test_conditions.py +45 -51
  155. chia/_tests/wallet/test_debug_spend_bundle.py +2 -2
  156. chia/_tests/wallet/test_new_wallet_protocol.py +17 -17
  157. chia/_tests/wallet/test_notifications.py +14 -14
  158. chia/_tests/wallet/test_signer_protocol.py +5 -5
  159. chia/_tests/wallet/test_singleton_lifecycle_fast.py +4 -3
  160. chia/_tests/wallet/test_transaction_store.py +20 -20
  161. chia/_tests/wallet/test_util.py +2 -2
  162. chia/_tests/wallet/test_wallet.py +380 -228
  163. chia/_tests/wallet/test_wallet_action_scope.py +4 -4
  164. chia/_tests/wallet/test_wallet_blockchain.py +12 -12
  165. chia/_tests/wallet/test_wallet_coin_store.py +3 -4
  166. chia/_tests/wallet/test_wallet_node.py +16 -15
  167. chia/_tests/wallet/test_wallet_test_framework.py +2 -1
  168. chia/_tests/wallet/test_wallet_utils.py +2 -3
  169. chia/_tests/wallet/vc_wallet/test_cr_outer_puzzle.py +3 -5
  170. chia/_tests/wallet/vc_wallet/test_vc_lifecycle.py +14 -15
  171. chia/_tests/wallet/vc_wallet/test_vc_wallet.py +29 -24
  172. chia/_tests/wallet/wallet_block_tools.py +12 -11
  173. chia/_tests/weight_proof/config.py +1 -0
  174. chia/_tests/weight_proof/test_weight_proof.py +5 -4
  175. chia/apis/__init__.py +21 -0
  176. chia/apis/farmer_stub.py +102 -0
  177. chia/apis/full_node_stub.py +374 -0
  178. chia/apis/harvester_stub.py +57 -0
  179. chia/apis/introducer_stub.py +35 -0
  180. chia/apis/solver_stub.py +30 -0
  181. chia/apis/stub_protocol_registry.py +21 -0
  182. chia/apis/timelord_stub.py +39 -0
  183. chia/apis/wallet_stub.py +161 -0
  184. chia/cmds/beta.py +3 -4
  185. chia/cmds/beta_funcs.py +4 -3
  186. chia/cmds/check_wallet_db.py +4 -4
  187. chia/cmds/chia.py +1 -2
  188. chia/cmds/cmd_classes.py +11 -13
  189. chia/cmds/cmd_helpers.py +11 -11
  190. chia/cmds/cmds_util.py +15 -15
  191. chia/cmds/coin_funcs.py +6 -7
  192. chia/cmds/coins.py +2 -3
  193. chia/cmds/configure.py +1 -2
  194. chia/cmds/data.py +42 -42
  195. chia/cmds/data_funcs.py +81 -81
  196. chia/cmds/db.py +4 -5
  197. chia/cmds/db_backup_func.py +2 -2
  198. chia/cmds/db_upgrade_func.py +3 -3
  199. chia/cmds/db_validate_func.py +2 -2
  200. chia/cmds/dev/data.py +4 -4
  201. chia/cmds/dev/gh.py +5 -5
  202. chia/cmds/dev/installers.py +2 -3
  203. chia/cmds/dev/mempool.py +3 -4
  204. chia/cmds/dev/mempool_funcs.py +4 -4
  205. chia/cmds/dev/sim.py +8 -8
  206. chia/cmds/dump_keyring.py +3 -3
  207. chia/cmds/farm.py +6 -8
  208. chia/cmds/farm_funcs.py +25 -24
  209. chia/cmds/init_funcs.py +4 -4
  210. chia/cmds/keys.py +16 -18
  211. chia/cmds/keys_funcs.py +36 -36
  212. chia/cmds/netspace.py +1 -3
  213. chia/cmds/netspace_funcs.py +1 -2
  214. chia/cmds/options.py +3 -2
  215. chia/cmds/param_types.py +17 -16
  216. chia/cmds/passphrase.py +6 -7
  217. chia/cmds/passphrase_funcs.py +11 -13
  218. chia/cmds/peer.py +1 -3
  219. chia/cmds/peer_funcs.py +3 -3
  220. chia/cmds/plotnft.py +6 -7
  221. chia/cmds/plotnft_funcs.py +37 -26
  222. chia/cmds/rpc.py +3 -3
  223. chia/cmds/show.py +3 -5
  224. chia/cmds/show_funcs.py +9 -9
  225. chia/cmds/sim_funcs.py +25 -26
  226. chia/cmds/solver.py +1 -3
  227. chia/cmds/solver_funcs.py +1 -2
  228. chia/cmds/start_funcs.py +2 -2
  229. chia/cmds/wallet.py +76 -81
  230. chia/cmds/wallet_funcs.py +206 -177
  231. chia/consensus/augmented_chain.py +6 -6
  232. chia/consensus/block_body_validation.py +19 -15
  233. chia/consensus/block_creation.py +25 -21
  234. chia/consensus/block_header_validation.py +27 -13
  235. chia/consensus/block_height_map.py +3 -6
  236. chia/consensus/block_height_map_protocol.py +2 -2
  237. chia/consensus/block_record.py +2 -4
  238. chia/consensus/blockchain.py +58 -40
  239. chia/consensus/blockchain_interface.py +7 -7
  240. chia/consensus/coin_store_protocol.py +5 -6
  241. chia/consensus/condition_tools.py +4 -4
  242. chia/consensus/cost_calculator.py +2 -3
  243. chia/consensus/default_constants.py +19 -13
  244. chia/consensus/deficit.py +1 -3
  245. chia/consensus/difficulty_adjustment.py +3 -5
  246. chia/consensus/find_fork_point.py +2 -4
  247. chia/consensus/full_block_to_block_record.py +11 -13
  248. chia/consensus/generator_tools.py +2 -3
  249. chia/consensus/get_block_challenge.py +50 -26
  250. chia/consensus/get_block_generator.py +2 -3
  251. chia/consensus/make_sub_epoch_summary.py +8 -7
  252. chia/consensus/multiprocess_validation.py +31 -20
  253. chia/consensus/pos_quality.py +6 -23
  254. chia/consensus/pot_iterations.py +17 -44
  255. chia/consensus/signage_point.py +4 -5
  256. chia/consensus/vdf_info_computation.py +2 -4
  257. chia/daemon/client.py +8 -8
  258. chia/daemon/keychain_proxy.py +31 -37
  259. chia/daemon/server.py +32 -33
  260. chia/daemon/windows_signal.py +4 -3
  261. chia/data_layer/data_layer.py +86 -77
  262. chia/data_layer/data_layer_rpc_api.py +9 -9
  263. chia/data_layer/data_layer_rpc_client.py +13 -15
  264. chia/data_layer/data_layer_server.py +3 -3
  265. chia/data_layer/data_layer_util.py +14 -14
  266. chia/data_layer/data_layer_wallet.py +94 -101
  267. chia/data_layer/data_store.py +50 -50
  268. chia/data_layer/dl_wallet_store.py +9 -12
  269. chia/data_layer/download_data.py +8 -9
  270. chia/data_layer/s3_plugin_service.py +5 -9
  271. chia/data_layer/start_data_layer.py +5 -5
  272. chia/farmer/farmer.py +31 -31
  273. chia/farmer/farmer_api.py +45 -33
  274. chia/farmer/farmer_rpc_api.py +5 -4
  275. chia/farmer/farmer_rpc_client.py +6 -6
  276. chia/farmer/start_farmer.py +6 -6
  277. chia/full_node/block_store.py +13 -16
  278. chia/full_node/check_fork_next_block.py +1 -2
  279. chia/full_node/coin_store.py +15 -16
  280. chia/full_node/eligible_coin_spends.py +3 -3
  281. chia/full_node/fee_estimate_store.py +2 -3
  282. chia/full_node/fee_tracker.py +1 -2
  283. chia/full_node/full_block_utils.py +4 -4
  284. chia/full_node/full_node.py +239 -223
  285. chia/full_node/full_node_api.py +197 -152
  286. chia/full_node/full_node_rpc_api.py +34 -32
  287. chia/full_node/full_node_rpc_client.py +18 -19
  288. chia/full_node/full_node_store.py +45 -43
  289. chia/full_node/hard_fork_utils.py +44 -0
  290. chia/full_node/hint_management.py +2 -2
  291. chia/full_node/mempool.py +17 -19
  292. chia/full_node/mempool_manager.py +89 -42
  293. chia/full_node/pending_tx_cache.py +2 -3
  294. chia/full_node/start_full_node.py +5 -5
  295. chia/full_node/sync_store.py +3 -4
  296. chia/full_node/tx_processing_queue.py +120 -36
  297. chia/full_node/weight_proof.py +61 -48
  298. chia/harvester/harvester.py +25 -24
  299. chia/harvester/harvester_api.py +61 -38
  300. chia/harvester/harvester_rpc_api.py +10 -10
  301. chia/harvester/start_harvester.py +4 -4
  302. chia/introducer/introducer.py +3 -3
  303. chia/introducer/introducer_api.py +6 -4
  304. chia/introducer/start_introducer.py +4 -4
  305. chia/legacy/keyring.py +3 -3
  306. chia/plot_sync/delta.py +1 -2
  307. chia/plot_sync/receiver.py +20 -17
  308. chia/plot_sync/sender.py +15 -10
  309. chia/plotters/bladebit.py +7 -7
  310. chia/plotters/chiapos.py +2 -2
  311. chia/plotters/madmax.py +4 -4
  312. chia/plotters/plotters.py +4 -4
  313. chia/plotters/plotters_util.py +3 -3
  314. chia/plotting/cache.py +20 -14
  315. chia/plotting/check_plots.py +26 -35
  316. chia/plotting/create_plots.py +22 -23
  317. chia/plotting/manager.py +21 -14
  318. chia/plotting/prover.py +59 -42
  319. chia/plotting/util.py +16 -16
  320. chia/pools/pool_config.py +2 -1
  321. chia/pools/pool_puzzles.py +11 -12
  322. chia/pools/pool_wallet.py +34 -57
  323. chia/pools/pool_wallet_info.py +39 -10
  324. chia/protocols/farmer_protocol.py +8 -9
  325. chia/protocols/fee_estimate.py +3 -4
  326. chia/protocols/full_node_protocol.py +3 -4
  327. chia/protocols/harvester_protocol.py +27 -15
  328. chia/protocols/outbound_message.py +3 -3
  329. chia/protocols/pool_protocol.py +8 -9
  330. chia/protocols/shared_protocol.py +1 -2
  331. chia/protocols/solver_protocol.py +9 -2
  332. chia/protocols/timelord_protocol.py +4 -7
  333. chia/protocols/wallet_protocol.py +11 -12
  334. chia/rpc/rpc_client.py +9 -9
  335. chia/rpc/rpc_server.py +17 -17
  336. chia/rpc/util.py +2 -2
  337. chia/seeder/crawler.py +8 -8
  338. chia/seeder/crawler_api.py +21 -27
  339. chia/seeder/crawler_rpc_api.py +2 -2
  340. chia/seeder/dns_server.py +21 -21
  341. chia/seeder/start_crawler.py +4 -4
  342. chia/server/address_manager.py +15 -16
  343. chia/server/api_protocol.py +11 -11
  344. chia/server/chia_policy.py +46 -26
  345. chia/server/introducer_peers.py +2 -3
  346. chia/server/node_discovery.py +19 -19
  347. chia/server/rate_limit_numbers.py +4 -5
  348. chia/server/rate_limits.py +4 -4
  349. chia/server/resolve_peer_info.py +4 -4
  350. chia/server/server.py +49 -52
  351. chia/server/signal_handlers.py +6 -6
  352. chia/server/start_service.py +17 -17
  353. chia/server/upnp.py +4 -6
  354. chia/server/ws_connection.py +52 -37
  355. chia/simulator/add_blocks_in_batches.py +1 -3
  356. chia/simulator/block_tools.py +312 -200
  357. chia/simulator/full_node_simulator.py +56 -35
  358. chia/simulator/keyring.py +2 -3
  359. chia/simulator/setup_services.py +15 -15
  360. chia/simulator/simulator_full_node_rpc_api.py +1 -2
  361. chia/simulator/simulator_full_node_rpc_client.py +1 -2
  362. chia/simulator/simulator_protocol.py +1 -2
  363. chia/simulator/simulator_test_tools.py +3 -3
  364. chia/simulator/start_simulator.py +7 -7
  365. chia/simulator/wallet_tools.py +10 -10
  366. chia/solver/solver.py +10 -10
  367. chia/solver/solver_api.py +10 -8
  368. chia/solver/solver_rpc_api.py +2 -2
  369. chia/solver/start_solver.py +4 -4
  370. chia/ssl/cacert.pem +148 -90
  371. chia/ssl/chia_ca.crt +14 -10
  372. chia/ssl/chia_ca_old.crt +19 -0
  373. chia/ssl/create_ssl.py +4 -4
  374. chia/ssl/renewedselfsignedca.conf +4 -0
  375. chia/ssl/ssl_check.py +1 -2
  376. chia/timelord/iters_from_block.py +1 -4
  377. chia/timelord/start_timelord.py +4 -4
  378. chia/timelord/timelord.py +44 -40
  379. chia/timelord/timelord_api.py +6 -4
  380. chia/timelord/timelord_launcher.py +2 -2
  381. chia/timelord/timelord_rpc_api.py +2 -2
  382. chia/timelord/timelord_state.py +11 -12
  383. chia/types/block_protocol.py +1 -3
  384. chia/types/blockchain_format/coin.py +1 -3
  385. chia/types/blockchain_format/program.py +11 -8
  386. chia/types/blockchain_format/proof_of_space.py +123 -76
  387. chia/types/blockchain_format/tree_hash.py +3 -3
  388. chia/types/blockchain_format/vdf.py +1 -2
  389. chia/types/coin_spend.py +3 -3
  390. chia/types/mempool_item.py +5 -5
  391. chia/types/mempool_submission_status.py +2 -3
  392. chia/types/peer_info.py +1 -2
  393. chia/types/unfinished_header_block.py +3 -4
  394. chia/types/validation_state.py +1 -2
  395. chia/util/action_scope.py +8 -8
  396. chia/util/async_pool.py +5 -5
  397. chia/util/bech32m.py +1 -2
  398. chia/util/beta_metrics.py +2 -2
  399. chia/util/block_cache.py +4 -4
  400. chia/util/chia_logging.py +2 -2
  401. chia/util/chia_version.py +1 -2
  402. chia/util/config.py +15 -16
  403. chia/util/db_wrapper.py +26 -27
  404. chia/util/default_root.py +1 -2
  405. chia/util/errors.py +3 -3
  406. chia/util/file_keyring.py +14 -14
  407. chia/util/files.py +2 -3
  408. chia/util/hash.py +4 -4
  409. chia/util/initial-config.yaml +4 -5
  410. chia/util/inline_executor.py +2 -1
  411. chia/util/ip_address.py +1 -2
  412. chia/util/keychain.py +25 -27
  413. chia/util/keyring_wrapper.py +18 -19
  414. chia/util/lock.py +3 -4
  415. chia/util/log_exceptions.py +1 -2
  416. chia/util/lru_cache.py +2 -2
  417. chia/util/network.py +6 -6
  418. chia/util/path.py +2 -3
  419. chia/util/priority_mutex.py +2 -2
  420. chia/util/profiler.py +1 -2
  421. chia/util/safe_cancel_task.py +1 -2
  422. chia/util/streamable.py +24 -10
  423. chia/util/task_referencer.py +1 -1
  424. chia/util/timing.py +3 -3
  425. chia/util/virtual_project_analysis.py +6 -5
  426. chia/util/ws_message.py +2 -2
  427. chia/wallet/cat_wallet/cat_info.py +3 -4
  428. chia/wallet/cat_wallet/cat_outer_puzzle.py +12 -11
  429. chia/wallet/cat_wallet/cat_utils.py +3 -4
  430. chia/wallet/cat_wallet/cat_wallet.py +61 -83
  431. chia/wallet/cat_wallet/lineage_store.py +3 -4
  432. chia/wallet/cat_wallet/r_cat_wallet.py +19 -22
  433. chia/wallet/coin_selection.py +9 -10
  434. chia/wallet/conditions.py +142 -106
  435. chia/wallet/db_wallet/db_wallet_puzzles.py +4 -5
  436. chia/wallet/derivation_record.py +1 -2
  437. chia/wallet/derive_keys.py +2 -4
  438. chia/wallet/did_wallet/did_info.py +10 -11
  439. chia/wallet/did_wallet/did_wallet.py +36 -82
  440. chia/wallet/did_wallet/did_wallet_puzzles.py +7 -8
  441. chia/wallet/driver_protocol.py +5 -7
  442. chia/wallet/lineage_proof.py +4 -4
  443. chia/wallet/nft_wallet/metadata_outer_puzzle.py +11 -11
  444. chia/wallet/nft_wallet/nft_info.py +8 -9
  445. chia/wallet/nft_wallet/nft_puzzle_utils.py +8 -8
  446. chia/wallet/nft_wallet/nft_wallet.py +79 -116
  447. chia/wallet/nft_wallet/ownership_outer_puzzle.py +14 -14
  448. chia/wallet/nft_wallet/singleton_outer_puzzle.py +12 -11
  449. chia/wallet/nft_wallet/transfer_program_puzzle.py +11 -11
  450. chia/wallet/nft_wallet/uncurry_nft.py +10 -11
  451. chia/wallet/notification_manager.py +3 -3
  452. chia/wallet/notification_store.py +44 -61
  453. chia/wallet/outer_puzzles.py +6 -7
  454. chia/wallet/puzzle_drivers.py +34 -6
  455. chia/wallet/puzzles/clawback/drivers.py +6 -6
  456. chia/wallet/puzzles/deployed_puzzle_hashes.json +1 -54
  457. chia/wallet/puzzles/load_clvm.py +1 -1
  458. chia/wallet/puzzles/p2_delegated_puzzle_or_hidden_puzzle.py +1 -2
  459. chia/wallet/puzzles/singleton_top_layer.py +2 -3
  460. chia/wallet/puzzles/singleton_top_layer_v1_1.py +3 -4
  461. chia/wallet/puzzles/tails.py +3 -3
  462. chia/wallet/singleton.py +5 -7
  463. chia/wallet/singleton_record.py +3 -3
  464. chia/wallet/start_wallet.py +5 -5
  465. chia/wallet/trade_manager.py +37 -58
  466. chia/wallet/trade_record.py +4 -4
  467. chia/wallet/trading/offer.py +59 -46
  468. chia/wallet/trading/trade_store.py +8 -9
  469. chia/wallet/transaction_record.py +8 -8
  470. chia/wallet/uncurried_puzzle.py +1 -2
  471. chia/wallet/util/clvm_streamable.py +12 -12
  472. chia/wallet/util/compute_hints.py +4 -5
  473. chia/wallet/util/curry_and_treehash.py +1 -2
  474. chia/wallet/util/merkle_tree.py +2 -3
  475. chia/wallet/util/peer_request_cache.py +8 -8
  476. chia/wallet/util/signing.py +85 -0
  477. chia/wallet/util/tx_config.py +15 -6
  478. chia/wallet/util/wallet_sync_utils.py +14 -16
  479. chia/wallet/util/wallet_types.py +2 -2
  480. chia/wallet/vc_wallet/cr_cat_drivers.py +10 -11
  481. chia/wallet/vc_wallet/cr_cat_wallet.py +50 -68
  482. chia/wallet/vc_wallet/cr_outer_puzzle.py +14 -13
  483. chia/wallet/vc_wallet/vc_drivers.py +27 -27
  484. chia/wallet/vc_wallet/vc_store.py +5 -6
  485. chia/wallet/vc_wallet/vc_wallet.py +33 -61
  486. chia/wallet/wallet.py +50 -78
  487. chia/wallet/wallet_action_scope.py +11 -11
  488. chia/wallet/wallet_blockchain.py +12 -12
  489. chia/wallet/wallet_coin_record.py +12 -6
  490. chia/wallet/wallet_coin_store.py +24 -25
  491. chia/wallet/wallet_interested_store.py +3 -5
  492. chia/wallet/wallet_nft_store.py +10 -11
  493. chia/wallet/wallet_node.py +53 -61
  494. chia/wallet/wallet_node_api.py +5 -3
  495. chia/wallet/wallet_protocol.py +23 -23
  496. chia/wallet/wallet_puzzle_store.py +15 -18
  497. chia/wallet/wallet_request_types.py +778 -114
  498. chia/wallet/wallet_retry_store.py +1 -3
  499. chia/wallet/wallet_rpc_api.py +572 -909
  500. chia/wallet/wallet_rpc_client.py +87 -279
  501. chia/wallet/wallet_singleton_store.py +3 -4
  502. chia/wallet/wallet_state_manager.py +332 -106
  503. chia/wallet/wallet_transaction_store.py +11 -14
  504. chia/wallet/wallet_user_store.py +4 -6
  505. chia/wallet/wallet_weight_proof_handler.py +4 -4
  506. {chia_blockchain-2.5.7rc4.dist-info → chia_blockchain-2.6.0rc2.dist-info}/METADATA +6 -5
  507. {chia_blockchain-2.5.7rc4.dist-info → chia_blockchain-2.6.0rc2.dist-info}/RECORD +510 -517
  508. chia/apis.py +0 -21
  509. chia/consensus/check_time_locks.py +0 -57
  510. chia/data_layer/puzzles/__init__.py +0 -0
  511. chia/data_layer/puzzles/graftroot_dl_offers.clsp +0 -100
  512. chia/data_layer/puzzles/graftroot_dl_offers.clsp.hex +0 -1
  513. chia/types/coin_record.py +0 -44
  514. chia/wallet/nft_wallet/puzzles/__init__.py +0 -0
  515. chia/wallet/nft_wallet/puzzles/create_nft_launcher_from_did.clsp +0 -6
  516. chia/wallet/nft_wallet/puzzles/create_nft_launcher_from_did.clsp.hex +0 -1
  517. chia/wallet/nft_wallet/puzzles/nft_intermediate_launcher.clsp +0 -6
  518. chia/wallet/nft_wallet/puzzles/nft_intermediate_launcher.clsp.hex +0 -1
  519. chia/wallet/nft_wallet/puzzles/nft_metadata_updater_default.clsp +0 -30
  520. chia/wallet/nft_wallet/puzzles/nft_metadata_updater_default.clsp.hex +0 -1
  521. chia/wallet/nft_wallet/puzzles/nft_metadata_updater_updateable.clsp +0 -28
  522. chia/wallet/nft_wallet/puzzles/nft_metadata_updater_updateable.clsp.hex +0 -1
  523. chia/wallet/nft_wallet/puzzles/nft_ownership_layer.clsp +0 -100
  524. chia/wallet/nft_wallet/puzzles/nft_ownership_layer.clsp.hex +0 -1
  525. chia/wallet/nft_wallet/puzzles/nft_ownership_transfer_program_one_way_claim_with_royalties.clsp +0 -78
  526. chia/wallet/nft_wallet/puzzles/nft_ownership_transfer_program_one_way_claim_with_royalties.clsp.hex +0 -1
  527. chia/wallet/nft_wallet/puzzles/nft_state_layer.clsp +0 -74
  528. chia/wallet/nft_wallet/puzzles/nft_state_layer.clsp.hex +0 -1
  529. {chia_blockchain-2.5.7rc4.dist-info → chia_blockchain-2.6.0rc2.dist-info}/WHEEL +0 -0
  530. {chia_blockchain-2.5.7rc4.dist-info → chia_blockchain-2.6.0rc2.dist-info}/entry_points.txt +0 -0
  531. {chia_blockchain-2.5.7rc4.dist-info → chia_blockchain-2.6.0rc2.dist-info}/licenses/LICENSE +0 -0
chia/cmds/sim_funcs.py CHANGED
@@ -5,10 +5,10 @@ import os
5
5
  import sys
6
6
  from pathlib import Path, PureWindowsPath
7
7
  from random import randint
8
- from typing import Any, Optional
8
+ from typing import Any
9
9
 
10
10
  from aiohttp import ClientConnectorError
11
- from chia_rs import PrivateKey
11
+ from chia_rs import CoinRecord, PrivateKey
12
12
  from chia_rs.sized_bytes import bytes32
13
13
  from chia_rs.sized_ints import uint32
14
14
 
@@ -17,7 +17,6 @@ from chia.cmds.start_funcs import async_start
17
17
  from chia.protocols.outbound_message import NodeType
18
18
  from chia.server.resolve_peer_info import set_peer_info
19
19
  from chia.simulator.simulator_full_node_rpc_client import SimulatorFullNodeRpcClient
20
- from chia.types.coin_record import CoinRecord
21
20
  from chia.util.bech32m import decode_puzzle_hash, encode_puzzle_hash
22
21
  from chia.util.config import load_config, save_config
23
22
  from chia.util.errors import KeychainFingerprintExists
@@ -44,9 +43,9 @@ def get_ph_from_fingerprint(fingerprint: int, key_id: int = 1) -> bytes32:
44
43
  def create_chia_directory(
45
44
  chia_root: Path,
46
45
  fingerprint: int,
47
- farming_address: Optional[str],
48
- plot_directory: Optional[str],
49
- auto_farm: Optional[bool],
46
+ farming_address: str | None,
47
+ plot_directory: str | None,
48
+ auto_farm: bool | None,
50
49
  docker_mode: bool,
51
50
  ) -> dict[str, Any]:
52
51
  """
@@ -164,7 +163,7 @@ def display_key_info(fingerprint: int, prefix: str) -> None:
164
163
  print(f"{mnemonic} \n")
165
164
 
166
165
 
167
- def generate_and_return_fingerprint(mnemonic: Optional[str] = None) -> int:
166
+ def generate_and_return_fingerprint(mnemonic: str | None = None) -> int:
168
167
  """
169
168
  Generate and add new PrivateKey and return its fingerprint.
170
169
  """
@@ -185,8 +184,8 @@ def generate_and_return_fingerprint(mnemonic: Optional[str] = None) -> int:
185
184
 
186
185
 
187
186
  def select_fingerprint(
188
- fingerprint: Optional[int] = None, mnemonic_string: Optional[str] = None, auto_generate_key: bool = False
189
- ) -> Optional[int]:
187
+ fingerprint: int | None = None, mnemonic_string: str | None = None, auto_generate_key: bool = False
188
+ ) -> int | None:
190
189
  """
191
190
  Either select an existing fingerprint or create one and return it.
192
191
  """
@@ -254,18 +253,18 @@ async def generate_plots(config: dict[str, Any], root_path: Path, fingerprint: i
254
253
  os.environ["CHIA_ROOT"] = str(root_path) # change env variable, to make it match what the daemon would set it to
255
254
 
256
255
  # create block tools and use local keychain
257
- bt = BlockTools(
256
+ with BlockTools(
258
257
  test_constants,
259
258
  root_path,
260
259
  automated_testing=False,
261
260
  plot_dir=config["simulator"].get("plot_directory", "plots"),
262
261
  keychain=Keychain(),
263
- )
264
- await bt.setup_keys(fingerprint=fingerprint, reward_ph=farming_puzzle_hash)
265
- existing_plots = await bt.setup_plots(
266
- num_og_plots=PLOTS, num_pool_plots=0, num_non_keychain_plots=0, plot_size=PLOT_SIZE, bitfield=bitfield
267
- )
268
- print(f"{'New plots generated.' if existing_plots else 'Using Existing Plots'}\n")
262
+ ) as bt:
263
+ await bt.setup_keys(fingerprint=fingerprint, reward_ph=farming_puzzle_hash)
264
+ existing_plots = await bt.setup_plots(
265
+ num_og_plots=PLOTS, num_pool_plots=0, num_non_keychain_plots=0, plot_size=PLOT_SIZE, bitfield=bitfield
266
+ )
267
+ print(f"{'New plots generated.' if existing_plots else 'Using Existing Plots'}\n")
269
268
 
270
269
 
271
270
  async def get_current_height(root_path: Path) -> int:
@@ -279,11 +278,11 @@ async def get_current_height(root_path: Path) -> int:
279
278
 
280
279
  async def async_config_wizard(
281
280
  root_path: Path,
282
- fingerprint: Optional[int],
283
- farming_address: Optional[str],
284
- plot_directory: Optional[str],
285
- mnemonic_string: Optional[str],
286
- auto_farm: Optional[bool],
281
+ fingerprint: int | None,
282
+ farming_address: str | None,
283
+ plot_directory: str | None,
284
+ mnemonic_string: str | None,
285
+ auto_farm: bool | None,
287
286
  docker_mode: bool,
288
287
  bitfield: bool,
289
288
  ) -> None:
@@ -391,9 +390,9 @@ async def print_wallets(config: dict[str, Any], node_client: SimulatorFullNodeRp
391
390
 
392
391
 
393
392
  async def print_status(
394
- rpc_port: Optional[int],
393
+ rpc_port: int | None,
395
394
  root_path: Path,
396
- fingerprint: Optional[int],
395
+ fingerprint: int | None,
397
396
  show_key: bool,
398
397
  show_coins: bool,
399
398
  include_reward_coins: bool,
@@ -440,7 +439,7 @@ async def print_status(
440
439
 
441
440
 
442
441
  async def revert_block_height(
443
- rpc_port: Optional[int],
442
+ rpc_port: int | None,
444
443
  root_path: Path,
445
444
  num_blocks: int,
446
445
  num_new_blocks: int,
@@ -469,7 +468,7 @@ async def revert_block_height(
469
468
 
470
469
 
471
470
  async def farm_blocks(
472
- rpc_port: Optional[int],
471
+ rpc_port: int | None,
473
472
  root_path: Path,
474
473
  num_blocks: int,
475
474
  transaction_blocks: bool,
@@ -495,7 +494,7 @@ async def farm_blocks(
495
494
  print(f"Block Height is now: {block_height}")
496
495
 
497
496
 
498
- async def set_auto_farm(rpc_port: Optional[int], root_path: Path, set_autofarm: bool) -> None:
497
+ async def set_auto_farm(rpc_port: int | None, root_path: Path, set_autofarm: bool) -> None:
499
498
  """
500
499
  This function can be used to enable or disable Auto Farming.
501
500
  """
chia/cmds/solver.py CHANGED
@@ -1,7 +1,5 @@
1
1
  from __future__ import annotations
2
2
 
3
- from typing import Optional
4
-
5
3
  import click
6
4
 
7
5
  from chia.cmds.cmd_classes import ChiaCliContext
@@ -24,7 +22,7 @@ def solver_cmd() -> None:
24
22
  @click.pass_context
25
23
  def get_state_cmd(
26
24
  ctx: click.Context,
27
- solver_rpc_port: Optional[int],
25
+ solver_rpc_port: int | None,
28
26
  ) -> None:
29
27
  import asyncio
30
28
 
chia/cmds/solver_funcs.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
  from chia.cmds.cmd_classes import ChiaCliContext
7
6
  from chia.cmds.cmds_util import get_any_service_client
@@ -10,7 +9,7 @@ from chia.solver.solver_rpc_client import SolverRpcClient
10
9
 
11
10
  async def get_state(
12
11
  ctx: ChiaCliContext,
13
- solver_rpc_port: Optional[int] = None,
12
+ solver_rpc_port: int | None = None,
14
13
  ) -> None:
15
14
  """Get solver state via RPC."""
16
15
  try:
chia/cmds/start_funcs.py CHANGED
@@ -7,7 +7,7 @@ import subprocess
7
7
  import sys
8
8
  from concurrent.futures import ThreadPoolExecutor
9
9
  from pathlib import Path
10
- from typing import Any, Optional
10
+ from typing import Any
11
11
 
12
12
  from chia.cmds.passphrase_funcs import get_current_passphrase
13
13
  from chia.daemon.client import DaemonProxy, connect_to_daemon_and_validate
@@ -45,7 +45,7 @@ def launch_start_daemon(root_path: Path) -> subprocess.Popen:
45
45
 
46
46
  async def create_start_daemon_connection(
47
47
  root_path: Path, config: dict[str, Any], *, skip_keyring: bool
48
- ) -> Optional[DaemonProxy]:
48
+ ) -> DaemonProxy | None:
49
49
  connection = await connect_to_daemon_and_validate(root_path, config)
50
50
  if connection is None:
51
51
  print("Starting daemon", flush=True)
chia/cmds/wallet.py CHANGED
@@ -3,7 +3,6 @@ from __future__ import annotations
3
3
  import asyncio
4
4
  import pathlib
5
5
  from collections.abc import Sequence
6
- from typing import Optional
7
6
 
8
7
  import click
9
8
  from chia_rs.sized_bytes import bytes32
@@ -55,7 +54,7 @@ wallet_cmd.add_command(get_chia_command_metadata(PushTransactionsCMD).command)
55
54
  @click.option("--verbose", "-v", count=True, type=int)
56
55
  @click.pass_context
57
56
  def get_transaction_cmd(
58
- ctx: click.Context, wallet_rpc_port: Optional[int], fingerprint: int, id: int, tx_id: str, verbose: int
57
+ ctx: click.Context, wallet_rpc_port: int | None, fingerprint: int, id: int, tx_id: str, verbose: int
59
58
  ) -> None:
60
59
  from chia.cmds.wallet_funcs import get_transaction
61
60
 
@@ -94,7 +93,7 @@ def get_transaction_cmd(
94
93
  "--limit",
95
94
  help="Max number of transactions to return",
96
95
  type=int,
97
- default=(2**16 - 1),
96
+ default=(2**32 - 1),
98
97
  show_default=True,
99
98
  required=False,
100
99
  )
@@ -105,19 +104,19 @@ def get_transaction_cmd(
105
104
  help="Prompt for each page of data. Defaults to true for interactive consoles, otherwise false.",
106
105
  )
107
106
  @click.option(
108
- "--sort-by-height",
107
+ "--sort-by-relevance",
109
108
  "sort_key",
110
- flag_value=SortKey.CONFIRMED_AT_HEIGHT,
109
+ flag_value=SortKey.RELEVANCE,
111
110
  type=SortKey,
112
- help="Sort transactions by height",
111
+ default=SortKey.RELEVANCE,
112
+ help="Sort transactions by {confirmed, height, time}",
113
113
  )
114
114
  @click.option(
115
- "--sort-by-relevance",
115
+ "--sort-by-height",
116
116
  "sort_key",
117
- flag_value=SortKey.RELEVANCE,
117
+ flag_value=SortKey.CONFIRMED_AT_HEIGHT,
118
118
  type=SortKey,
119
- default=True,
120
- help="Sort transactions by {confirmed, height, time}",
119
+ help="Sort transactions by height",
121
120
  )
122
121
  @click.option(
123
122
  "--reverse",
@@ -134,13 +133,13 @@ def get_transaction_cmd(
134
133
  @click.pass_context
135
134
  def get_transactions_cmd(
136
135
  ctx: click.Context,
137
- wallet_rpc_port: Optional[int],
136
+ wallet_rpc_port: int | None,
138
137
  fingerprint: int,
139
138
  id: int,
140
139
  offset: int,
141
140
  limit: int,
142
141
  verbose: bool,
143
- paginate: Optional[bool],
142
+ paginate: bool | None,
144
143
  sort_key: SortKey,
145
144
  reverse: bool,
146
145
  clawback: bool,
@@ -224,11 +223,11 @@ def get_transactions_cmd(
224
223
  @click.pass_context
225
224
  def send_cmd(
226
225
  ctx: click.Context,
227
- wallet_rpc_port: Optional[int],
226
+ wallet_rpc_port: int | None,
228
227
  fingerprint: int,
229
228
  id: int,
230
229
  amount: CliAmount,
231
- memo: Optional[str],
230
+ memo: str | None,
232
231
  fee: uint64,
233
232
  address: CliAddress,
234
233
  override: bool,
@@ -281,7 +280,7 @@ def send_cmd(
281
280
  default=None,
282
281
  )
283
282
  @click.pass_context
284
- def show_cmd(ctx: click.Context, wallet_rpc_port: Optional[int], fingerprint: int, wallet_type: Optional[str]) -> None:
283
+ def show_cmd(ctx: click.Context, wallet_rpc_port: int | None, fingerprint: int, wallet_type: str | None) -> None:
285
284
  from chia.cmds.wallet_funcs import print_balances
286
285
 
287
286
  asyncio.run(
@@ -316,7 +315,7 @@ def show_cmd(ctx: click.Context, wallet_rpc_port: Optional[int], fingerprint: in
316
315
  )
317
316
  @click.pass_context
318
317
  def get_address_cmd(
319
- ctx: click.Context, wallet_rpc_port: Optional[int], id: int, fingerprint: int, new_address: bool
318
+ ctx: click.Context, wallet_rpc_port: int | None, id: int, fingerprint: int, new_address: bool
320
319
  ) -> None:
321
320
  from chia.cmds.wallet_funcs import get_address
322
321
 
@@ -357,7 +356,7 @@ def get_address_cmd(
357
356
  @click.pass_context
358
357
  def clawback(
359
358
  ctx: click.Context,
360
- wallet_rpc_port: Optional[int],
359
+ wallet_rpc_port: int | None,
361
360
  id: int,
362
361
  fingerprint: int,
363
362
  tx_ids: str,
@@ -394,7 +393,7 @@ def clawback(
394
393
  @options.create_fingerprint()
395
394
  @click.pass_context
396
395
  def delete_unconfirmed_transactions_cmd(
397
- ctx: click.Context, wallet_rpc_port: Optional[int], id: int, fingerprint: int
396
+ ctx: click.Context, wallet_rpc_port: int | None, id: int, fingerprint: int
398
397
  ) -> None:
399
398
  from chia.cmds.wallet_funcs import delete_unconfirmed_transactions
400
399
 
@@ -413,7 +412,7 @@ def delete_unconfirmed_transactions_cmd(
413
412
  )
414
413
  @options.create_fingerprint()
415
414
  @click.pass_context
416
- def get_derivation_index_cmd(ctx: click.Context, wallet_rpc_port: Optional[int], fingerprint: int) -> None:
415
+ def get_derivation_index_cmd(ctx: click.Context, wallet_rpc_port: int | None, fingerprint: int) -> None:
417
416
  from chia.cmds.wallet_funcs import get_derivation_index
418
417
 
419
418
  asyncio.run(get_derivation_index(ChiaCliContext.set_default(ctx).root_path, wallet_rpc_port, fingerprint))
@@ -433,7 +432,7 @@ def get_derivation_index_cmd(ctx: click.Context, wallet_rpc_port: Optional[int],
433
432
  @click.option("-m", "--hex_message", help="The hex message you want sign", type=str, required=True)
434
433
  @click.pass_context
435
434
  def address_sign_message(
436
- ctx: click.Context, wallet_rpc_port: Optional[int], fingerprint: int, address: CliAddress, hex_message: str
435
+ ctx: click.Context, wallet_rpc_port: int | None, fingerprint: int, address: CliAddress, hex_message: str
437
436
  ) -> None:
438
437
  from chia.cmds.wallet_funcs import sign_message
439
438
 
@@ -464,9 +463,7 @@ def address_sign_message(
464
463
  "-i", "--index", help="Index to set. Must be greater than the current derivation index", type=int, required=True
465
464
  )
466
465
  @click.pass_context
467
- def update_derivation_index_cmd(
468
- ctx: click.Context, wallet_rpc_port: Optional[int], fingerprint: int, index: int
469
- ) -> None:
466
+ def update_derivation_index_cmd(ctx: click.Context, wallet_rpc_port: int | None, fingerprint: int, index: int) -> None:
470
467
  from chia.cmds.wallet_funcs import update_derivation_index
471
468
 
472
469
  asyncio.run(update_derivation_index(ChiaCliContext.set_default(ctx).root_path, wallet_rpc_port, fingerprint, index))
@@ -495,7 +492,7 @@ def update_derivation_index_cmd(
495
492
  @options.create_fingerprint()
496
493
  @click.pass_context
497
494
  def add_token_cmd(
498
- ctx: click.Context, wallet_rpc_port: Optional[int], asset_id: bytes32, token_name: str, fingerprint: int
495
+ ctx: click.Context, wallet_rpc_port: int | None, asset_id: bytes32, token_name: str, fingerprint: int
499
496
  ) -> None:
500
497
  from chia.cmds.wallet_funcs import add_token
501
498
 
@@ -547,7 +544,7 @@ def add_token_cmd(
547
544
  # we already have a canonical offer file format which the idea of exporting a different transaction conflicts with
548
545
  def make_offer_cmd(
549
546
  ctx: click.Context,
550
- wallet_rpc_port: Optional[int],
547
+ wallet_rpc_port: int | None,
551
548
  fingerprint: int,
552
549
  offer: Sequence[str],
553
550
  request: Sequence[str],
@@ -602,10 +599,10 @@ def make_offer_cmd(
602
599
  @click.pass_context
603
600
  def get_offers_cmd(
604
601
  ctx: click.Context,
605
- wallet_rpc_port: Optional[int],
602
+ wallet_rpc_port: int | None,
606
603
  fingerprint: int,
607
- id: Optional[bytes32],
608
- filepath: Optional[str],
604
+ id: bytes32 | None,
605
+ filepath: str | None,
609
606
  exclude_my_offers: bool,
610
607
  exclude_taken_offers: bool,
611
608
  include_completed: bool,
@@ -656,7 +653,7 @@ def get_offers_cmd(
656
653
  def take_offer_cmd(
657
654
  ctx: click.Context,
658
655
  path_or_hex: str,
659
- wallet_rpc_port: Optional[int],
656
+ wallet_rpc_port: int | None,
660
657
  fingerprint: int,
661
658
  examine_only: bool,
662
659
  fee: uint64,
@@ -696,7 +693,7 @@ def take_offer_cmd(
696
693
  @click.pass_context
697
694
  def cancel_offer_cmd(
698
695
  ctx: click.Context,
699
- wallet_rpc_port: Optional[int],
696
+ wallet_rpc_port: int | None,
700
697
  fingerprint: int,
701
698
  id: bytes32,
702
699
  insecure: bool,
@@ -762,9 +759,9 @@ def did_cmd() -> None:
762
759
  @click.pass_context
763
760
  def did_create_wallet_cmd(
764
761
  ctx: click.Context,
765
- wallet_rpc_port: Optional[int],
762
+ wallet_rpc_port: int | None,
766
763
  fingerprint: int,
767
- name: Optional[str],
764
+ name: str | None,
768
765
  amount: int,
769
766
  fee: uint64,
770
767
  push: bool,
@@ -799,7 +796,7 @@ def did_create_wallet_cmd(
799
796
  @click.option("-m", "--hex_message", help="The hex message you want to sign", type=str, required=True)
800
797
  @click.pass_context
801
798
  def did_sign_message(
802
- ctx: click.Context, wallet_rpc_port: Optional[int], fingerprint: int, did_id: CliAddress, hex_message: str
799
+ ctx: click.Context, wallet_rpc_port: int | None, fingerprint: int, did_id: CliAddress, hex_message: str
803
800
  ) -> None:
804
801
  from chia.cmds.wallet_funcs import sign_message
805
802
 
@@ -827,9 +824,7 @@ def did_sign_message(
827
824
  @click.option("-i", "--id", help="Id of the wallet to use", type=int, required=True)
828
825
  @click.option("-n", "--name", help="Set the DID wallet name", type=str, required=True)
829
826
  @click.pass_context
830
- def did_wallet_name_cmd(
831
- ctx: click.Context, wallet_rpc_port: Optional[int], fingerprint: int, id: int, name: str
832
- ) -> None:
827
+ def did_wallet_name_cmd(ctx: click.Context, wallet_rpc_port: int | None, fingerprint: int, id: int, name: str) -> None:
833
828
  from chia.cmds.wallet_funcs import did_set_wallet_name
834
829
 
835
830
  asyncio.run(did_set_wallet_name(ChiaCliContext.set_default(ctx).root_path, wallet_rpc_port, fingerprint, id, name))
@@ -846,7 +841,7 @@ def did_wallet_name_cmd(
846
841
  @options.create_fingerprint()
847
842
  @click.option("-i", "--id", help="Id of the wallet to use", type=int, required=True)
848
843
  @click.pass_context
849
- def did_get_did_cmd(ctx: click.Context, wallet_rpc_port: Optional[int], fingerprint: int, id: int) -> None:
844
+ def did_get_did_cmd(ctx: click.Context, wallet_rpc_port: int | None, fingerprint: int, id: int) -> None:
850
845
  from chia.cmds.wallet_funcs import get_did
851
846
 
852
847
  asyncio.run(get_did(ChiaCliContext.set_default(ctx).root_path, wallet_rpc_port, fingerprint, id))
@@ -865,7 +860,7 @@ def did_get_did_cmd(ctx: click.Context, wallet_rpc_port: Optional[int], fingerpr
865
860
  @click.option("-l", "--latest", help="Return latest DID information", is_flag=True, default=True)
866
861
  @click.pass_context
867
862
  def did_get_details_cmd(
868
- ctx: click.Context, wallet_rpc_port: Optional[int], fingerprint: int, coin_id: str, latest: bool
863
+ ctx: click.Context, wallet_rpc_port: int | None, fingerprint: int, coin_id: str, latest: bool
869
864
  ) -> None:
870
865
  from chia.cmds.wallet_funcs import get_did_info
871
866
 
@@ -893,7 +888,7 @@ def did_get_details_cmd(
893
888
  @click.pass_context
894
889
  def did_update_metadata_cmd(
895
890
  ctx: click.Context,
896
- wallet_rpc_port: Optional[int],
891
+ wallet_rpc_port: int | None,
897
892
  fingerprint: int,
898
893
  id: int,
899
894
  metadata: str,
@@ -946,12 +941,12 @@ def did_update_metadata_cmd(
946
941
  @click.pass_context
947
942
  def did_find_lost_cmd(
948
943
  ctx: click.Context,
949
- wallet_rpc_port: Optional[int],
944
+ wallet_rpc_port: int | None,
950
945
  fingerprint: int,
951
946
  coin_id: str,
952
- metadata: Optional[str],
953
- recovery_list_hash: Optional[str],
954
- num_verification: Optional[int],
947
+ metadata: str | None,
948
+ recovery_list_hash: str | None,
949
+ num_verification: int | None,
955
950
  ) -> None:
956
951
  from chia.cmds.wallet_funcs import find_lost_did
957
952
 
@@ -996,11 +991,11 @@ def did_find_lost_cmd(
996
991
  @click.pass_context
997
992
  def did_message_spend_cmd(
998
993
  ctx: click.Context,
999
- wallet_rpc_port: Optional[int],
994
+ wallet_rpc_port: int | None,
1000
995
  fingerprint: int,
1001
996
  id: int,
1002
- puzzle_announcements: Optional[str],
1003
- coin_announcements: Optional[str],
997
+ puzzle_announcements: str | None,
998
+ coin_announcements: str | None,
1004
999
  push: bool,
1005
1000
  condition_valid_times: ConditionValidTimes,
1006
1001
  ) -> list[TransactionRecord]:
@@ -1067,7 +1062,7 @@ def did_message_spend_cmd(
1067
1062
  @click.pass_context
1068
1063
  def did_transfer_did(
1069
1064
  ctx: click.Context,
1070
- wallet_rpc_port: Optional[int],
1065
+ wallet_rpc_port: int | None,
1071
1066
  fingerprint: int,
1072
1067
  id: int,
1073
1068
  target_address: CliAddress,
@@ -1115,10 +1110,10 @@ def nft_cmd() -> None:
1115
1110
  @click.pass_context
1116
1111
  def nft_wallet_create_cmd(
1117
1112
  ctx: click.Context,
1118
- wallet_rpc_port: Optional[int],
1113
+ wallet_rpc_port: int | None,
1119
1114
  fingerprint: int,
1120
- did_id: Optional[CliAddress],
1121
- name: Optional[str],
1115
+ did_id: CliAddress | None,
1116
+ name: str | None,
1122
1117
  ) -> None:
1123
1118
  from chia.cmds.wallet_funcs import create_nft_wallet
1124
1119
 
@@ -1140,7 +1135,7 @@ def nft_wallet_create_cmd(
1140
1135
  @click.option("-m", "--hex_message", help="The hex message you want to sign", type=str, required=True)
1141
1136
  @click.pass_context
1142
1137
  def nft_sign_message(
1143
- ctx: click.Context, wallet_rpc_port: Optional[int], fingerprint: int, nft_id: CliAddress, hex_message: str
1138
+ ctx: click.Context, wallet_rpc_port: int | None, fingerprint: int, nft_id: CliAddress, hex_message: str
1144
1139
  ) -> None:
1145
1140
  from chia.cmds.wallet_funcs import sign_message
1146
1141
 
@@ -1196,20 +1191,20 @@ def nft_sign_message(
1196
1191
  @click.pass_context
1197
1192
  def nft_mint_cmd(
1198
1193
  ctx: click.Context,
1199
- wallet_rpc_port: Optional[int],
1194
+ wallet_rpc_port: int | None,
1200
1195
  fingerprint: int,
1201
1196
  id: int,
1202
- royalty_address: Optional[CliAddress],
1203
- target_address: Optional[CliAddress],
1197
+ royalty_address: CliAddress | None,
1198
+ target_address: CliAddress | None,
1204
1199
  no_did_ownership: bool,
1205
1200
  hash: str,
1206
1201
  uris: str,
1207
- metadata_hash: Optional[str],
1208
- metadata_uris: Optional[str],
1209
- license_hash: Optional[str],
1210
- license_uris: Optional[str],
1211
- edition_total: Optional[int],
1212
- edition_number: Optional[int],
1202
+ metadata_hash: str | None,
1203
+ metadata_uris: str | None,
1204
+ license_hash: str | None,
1205
+ license_uris: str | None,
1206
+ edition_total: int | None,
1207
+ edition_number: int | None,
1213
1208
  fee: uint64,
1214
1209
  royalty_percentage_fraction: int,
1215
1210
  reuse: bool,
@@ -1280,7 +1275,7 @@ def nft_mint_cmd(
1280
1275
  @click.pass_context
1281
1276
  def nft_add_uri_cmd(
1282
1277
  ctx: click.Context,
1283
- wallet_rpc_port: Optional[int],
1278
+ wallet_rpc_port: int | None,
1284
1279
  fingerprint: int,
1285
1280
  id: int,
1286
1281
  nft_coin_id: str,
@@ -1336,7 +1331,7 @@ def nft_add_uri_cmd(
1336
1331
  @click.pass_context
1337
1332
  def nft_transfer_cmd(
1338
1333
  ctx: click.Context,
1339
- wallet_rpc_port: Optional[int],
1334
+ wallet_rpc_port: int | None,
1340
1335
  fingerprint: int,
1341
1336
  id: int,
1342
1337
  nft_coin_id: str,
@@ -1378,7 +1373,7 @@ def nft_transfer_cmd(
1378
1373
  @click.option("--start-index", help="Which starting index to start listing NFTs from", type=int, default=0)
1379
1374
  @click.pass_context
1380
1375
  def nft_list_cmd(
1381
- ctx: click.Context, wallet_rpc_port: Optional[int], fingerprint: int, id: int, num: int, start_index: int
1376
+ ctx: click.Context, wallet_rpc_port: int | None, fingerprint: int, id: int, num: int, start_index: int
1382
1377
  ) -> None:
1383
1378
  from chia.cmds.wallet_funcs import list_nfts
1384
1379
 
@@ -1411,7 +1406,7 @@ def nft_list_cmd(
1411
1406
  @click.pass_context
1412
1407
  def nft_set_did_cmd(
1413
1408
  ctx: click.Context,
1414
- wallet_rpc_port: Optional[int],
1409
+ wallet_rpc_port: int | None,
1415
1410
  fingerprint: int,
1416
1411
  id: int,
1417
1412
  did_id: str,
@@ -1453,7 +1448,7 @@ def nft_set_did_cmd(
1453
1448
  @click.pass_context
1454
1449
  def nft_get_info_cmd(
1455
1450
  ctx: click.Context,
1456
- wallet_rpc_port: Optional[int],
1451
+ wallet_rpc_port: int | None,
1457
1452
  fingerprint: int,
1458
1453
  nft_coin_id: str,
1459
1454
  ) -> None:
@@ -1498,7 +1493,7 @@ def notification_cmd() -> None:
1498
1493
  @click.pass_context
1499
1494
  def send_notification_cmd(
1500
1495
  ctx: click.Context,
1501
- wallet_rpc_port: Optional[int],
1496
+ wallet_rpc_port: int | None,
1502
1497
  fingerprint: int,
1503
1498
  to_address: CliAddress,
1504
1499
  amount: CliAmount,
@@ -1540,11 +1535,11 @@ def send_notification_cmd(
1540
1535
  @click.pass_context
1541
1536
  def get_notifications_cmd(
1542
1537
  ctx: click.Context,
1543
- wallet_rpc_port: Optional[int],
1538
+ wallet_rpc_port: int | None,
1544
1539
  fingerprint: int,
1545
1540
  id: Sequence[bytes32],
1546
- start: Optional[int],
1547
- end: Optional[int],
1541
+ start: int | None,
1542
+ end: int | None,
1548
1543
  ) -> None:
1549
1544
  from chia.cmds.wallet_funcs import get_notifications
1550
1545
 
@@ -1567,7 +1562,7 @@ def get_notifications_cmd(
1567
1562
  @click.pass_context
1568
1563
  def delete_notifications_cmd(
1569
1564
  ctx: click.Context,
1570
- wallet_rpc_port: Optional[int],
1565
+ wallet_rpc_port: int | None,
1571
1566
  fingerprint: int,
1572
1567
  id: Sequence[bytes32],
1573
1568
  all: bool,
@@ -1604,10 +1599,10 @@ def vcs_cmd() -> None: # pragma: no cover
1604
1599
  @click.pass_context
1605
1600
  def mint_vc_cmd(
1606
1601
  ctx: click.Context,
1607
- wallet_rpc_port: Optional[int],
1602
+ wallet_rpc_port: int | None,
1608
1603
  fingerprint: int,
1609
1604
  did: CliAddress,
1610
- target_address: Optional[CliAddress],
1605
+ target_address: CliAddress | None,
1611
1606
  fee: uint64,
1612
1607
  push: bool,
1613
1608
  condition_valid_times: ConditionValidTimes,
@@ -1646,7 +1641,7 @@ def mint_vc_cmd(
1646
1641
  @click.pass_context
1647
1642
  def get_vcs_cmd(
1648
1643
  ctx: click.Context,
1649
- wallet_rpc_port: Optional[int],
1644
+ wallet_rpc_port: int | None,
1650
1645
  fingerprint: int,
1651
1646
  start: int,
1652
1647
  count: int,
@@ -1691,10 +1686,10 @@ def get_vcs_cmd(
1691
1686
  @click.pass_context
1692
1687
  def spend_vc_cmd(
1693
1688
  ctx: click.Context,
1694
- wallet_rpc_port: Optional[int],
1689
+ wallet_rpc_port: int | None,
1695
1690
  fingerprint: int,
1696
1691
  vc_id: bytes32,
1697
- new_puzhash: Optional[bytes32],
1692
+ new_puzhash: bytes32 | None,
1698
1693
  new_proof_hash: str,
1699
1694
  fee: uint64,
1700
1695
  reuse_puzhash: bool,
@@ -1733,7 +1728,7 @@ def spend_vc_cmd(
1733
1728
  @click.pass_context
1734
1729
  def add_proof_reveal_cmd(
1735
1730
  ctx: click.Context,
1736
- wallet_rpc_port: Optional[int],
1731
+ wallet_rpc_port: int | None,
1737
1732
  fingerprint: int,
1738
1733
  proof: Sequence[str],
1739
1734
  root_only: bool,
@@ -1758,7 +1753,7 @@ def add_proof_reveal_cmd(
1758
1753
  @click.pass_context
1759
1754
  def get_proofs_for_root_cmd(
1760
1755
  ctx: click.Context,
1761
- wallet_rpc_port: Optional[int],
1756
+ wallet_rpc_port: int | None,
1762
1757
  fingerprint: int,
1763
1758
  proof_hash: str,
1764
1759
  ) -> None: # pragma: no cover
@@ -1803,10 +1798,10 @@ def get_proofs_for_root_cmd(
1803
1798
  @click.pass_context
1804
1799
  def revoke_vc_cmd(
1805
1800
  ctx: click.Context,
1806
- wallet_rpc_port: Optional[int],
1801
+ wallet_rpc_port: int | None,
1807
1802
  fingerprint: int,
1808
- parent_coin_id: Optional[bytes32],
1809
- vc_id: Optional[bytes32],
1803
+ parent_coin_id: bytes32 | None,
1804
+ vc_id: bytes32 | None,
1810
1805
  fee: uint64,
1811
1806
  reuse_puzhash: bool,
1812
1807
  push: bool,
@@ -1871,7 +1866,7 @@ def revoke_vc_cmd(
1871
1866
  @click.pass_context
1872
1867
  def approve_r_cats_cmd(
1873
1868
  ctx: click.Context,
1874
- wallet_rpc_port: Optional[int],
1869
+ wallet_rpc_port: int | None,
1875
1870
  fingerprint: int,
1876
1871
  id: int,
1877
1872
  min_amount_to_claim: CliAmount,