chia-blockchain 2.5.4rc2__py3-none-any.whl → 2.5.5rc1__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 (453) hide show
  1. chia/_tests/blockchain/blockchain_test_utils.py +2 -3
  2. chia/_tests/blockchain/test_augmented_chain.py +2 -3
  3. chia/_tests/blockchain/test_blockchain.py +261 -44
  4. chia/_tests/blockchain/test_blockchain_transactions.py +4 -3
  5. chia/_tests/blockchain/test_build_chains.py +197 -1
  6. chia/_tests/blockchain/test_get_block_generator.py +1 -1
  7. chia/_tests/blockchain/test_lookup_fork_chain.py +1 -1
  8. chia/_tests/clvm/benchmark_costs.py +1 -1
  9. chia/_tests/clvm/coin_store.py +3 -4
  10. chia/_tests/clvm/test_message_conditions.py +2 -2
  11. chia/_tests/clvm/test_puzzle_compression.py +2 -3
  12. chia/_tests/clvm/test_puzzles.py +1 -2
  13. chia/_tests/clvm/test_singletons.py +2 -3
  14. chia/_tests/clvm/test_spend_sim.py +7 -7
  15. chia/_tests/cmds/cmd_test_utils.py +30 -25
  16. chia/_tests/cmds/test_dev_gh.py +1 -1
  17. chia/_tests/cmds/test_farm_cmd.py +1 -1
  18. chia/_tests/cmds/test_show.py +1 -2
  19. chia/_tests/cmds/wallet/test_did.py +101 -56
  20. chia/_tests/cmds/wallet/test_nft.py +109 -84
  21. chia/_tests/cmds/wallet/test_notifications.py +1 -1
  22. chia/_tests/cmds/wallet/test_offer.toffer +1 -1
  23. chia/_tests/cmds/wallet/test_vcs.py +8 -8
  24. chia/_tests/cmds/wallet/test_wallet.py +100 -46
  25. chia/_tests/conftest.py +31 -20
  26. chia/_tests/connection_utils.py +1 -1
  27. chia/_tests/core/consensus/stores/__init__.py +0 -0
  28. chia/_tests/core/consensus/stores/test_coin_store_protocol.py +40 -0
  29. chia/_tests/core/consensus/test_block_creation.py +2 -31
  30. chia/_tests/core/consensus/test_pot_iterations.py +38 -3
  31. chia/_tests/core/custom_types/test_proof_of_space.py +154 -26
  32. chia/_tests/core/custom_types/test_spend_bundle.py +2 -3
  33. chia/_tests/core/daemon/test_daemon.py +80 -0
  34. chia/_tests/core/data_layer/test_data_layer.py +1 -1
  35. chia/_tests/core/data_layer/test_data_layer_util.py +1 -1
  36. chia/_tests/core/data_layer/test_data_rpc.py +14 -10
  37. chia/_tests/core/data_layer/test_data_store.py +5 -5
  38. chia/_tests/core/farmer/test_farmer_api.py +2 -2
  39. chia/_tests/core/full_node/full_sync/test_full_sync.py +446 -406
  40. chia/_tests/core/full_node/ram_db.py +3 -1
  41. chia/_tests/core/full_node/stores/test_block_store.py +28 -16
  42. chia/_tests/core/full_node/stores/test_coin_store.py +277 -185
  43. chia/_tests/core/full_node/stores/test_full_node_store.py +11 -4
  44. chia/_tests/core/full_node/stores/test_hint_store.py +2 -2
  45. chia/_tests/core/full_node/test_address_manager.py +200 -27
  46. chia/_tests/core/full_node/test_block_height_map.py +2 -2
  47. chia/_tests/core/full_node/test_conditions.py +7 -6
  48. chia/_tests/core/full_node/test_full_node.py +456 -40
  49. chia/_tests/core/full_node/test_generator_tools.py +32 -2
  50. chia/_tests/core/full_node/test_hint_management.py +1 -1
  51. chia/_tests/core/full_node/test_node_load.py +20 -21
  52. chia/_tests/core/full_node/test_performance.py +3 -4
  53. chia/_tests/core/full_node/test_prev_tx_block.py +43 -0
  54. chia/_tests/core/full_node/test_subscriptions.py +1 -2
  55. chia/_tests/core/full_node/test_transactions.py +9 -5
  56. chia/_tests/core/full_node/test_tx_processing_queue.py +1 -2
  57. chia/_tests/core/large_block.py +1 -2
  58. chia/_tests/core/make_block_generator.py +3 -4
  59. chia/_tests/core/mempool/test_mempool.py +36 -86
  60. chia/_tests/core/mempool/test_mempool_fee_estimator.py +1 -1
  61. chia/_tests/core/mempool/test_mempool_item_queries.py +1 -3
  62. chia/_tests/core/mempool/test_mempool_manager.py +421 -69
  63. chia/_tests/core/mempool/test_mempool_performance.py +3 -2
  64. chia/_tests/core/mempool/test_singleton_fast_forward.py +60 -131
  65. chia/_tests/core/server/flood.py +1 -1
  66. chia/_tests/core/server/test_dos.py +1 -1
  67. chia/_tests/core/server/test_node_discovery.py +41 -27
  68. chia/_tests/core/server/test_rate_limits.py +1 -1
  69. chia/_tests/core/server/test_server.py +1 -1
  70. chia/_tests/core/services/test_services.py +5 -5
  71. chia/_tests/core/ssl/test_ssl.py +1 -1
  72. chia/_tests/core/test_cost_calculation.py +6 -6
  73. chia/_tests/core/test_crawler.py +2 -2
  74. chia/_tests/core/test_crawler_rpc.py +1 -1
  75. chia/_tests/core/test_db_conversion.py +3 -1
  76. chia/_tests/core/test_db_validation.py +5 -3
  77. chia/_tests/core/test_farmer_harvester_rpc.py +15 -15
  78. chia/_tests/core/test_filter.py +4 -1
  79. chia/_tests/core/test_full_node_rpc.py +99 -82
  80. chia/_tests/core/test_program.py +2 -2
  81. chia/_tests/core/util/test_block_cache.py +1 -1
  82. chia/_tests/core/util/test_keychain.py +2 -2
  83. chia/_tests/core/util/test_lockfile.py +1 -1
  84. chia/_tests/core/util/test_log_exceptions.py +5 -5
  85. chia/_tests/core/util/test_streamable.py +81 -22
  86. chia/_tests/db/test_db_wrapper.py +1 -3
  87. chia/_tests/environments/wallet.py +5 -5
  88. chia/_tests/farmer_harvester/test_farmer.py +9 -7
  89. chia/_tests/farmer_harvester/test_farmer_harvester.py +11 -4
  90. chia/_tests/farmer_harvester/test_filter_prefix_bits.py +6 -5
  91. chia/_tests/farmer_harvester/test_third_party_harvesters.py +15 -9
  92. chia/_tests/fee_estimation/test_fee_estimation_integration.py +1 -2
  93. chia/_tests/fee_estimation/test_fee_estimation_rpc.py +7 -5
  94. chia/_tests/fee_estimation/test_fee_estimation_unit_tests.py +1 -1
  95. chia/_tests/generator/test_compression.py +1 -2
  96. chia/_tests/generator/test_rom.py +8 -4
  97. chia/_tests/plot_sync/test_plot_sync.py +3 -3
  98. chia/_tests/plot_sync/test_receiver.py +3 -3
  99. chia/_tests/plot_sync/test_sender.py +1 -1
  100. chia/_tests/plot_sync/test_sync_simulated.py +3 -3
  101. chia/_tests/plot_sync/util.py +2 -2
  102. chia/_tests/pools/test_pool_cmdline.py +48 -21
  103. chia/_tests/pools/test_pool_puzzles_lifecycle.py +2 -3
  104. chia/_tests/pools/test_pool_rpc.py +237 -105
  105. chia/_tests/pools/test_pool_wallet.py +11 -2
  106. chia/_tests/pools/test_wallet_pool_store.py +5 -4
  107. chia/_tests/rpc/test_rpc_client.py +1 -1
  108. chia/_tests/simulation/test_simulation.py +13 -8
  109. chia/_tests/simulation/test_simulator.py +2 -2
  110. chia/_tests/timelord/test_new_peak.py +191 -47
  111. chia/_tests/timelord/test_timelord.py +1 -1
  112. chia/_tests/tools/test_full_sync.py +0 -2
  113. chia/_tests/tools/test_run_block.py +3 -1
  114. chia/_tests/util/benchmark_cost.py +3 -3
  115. chia/_tests/util/benchmarks.py +2 -2
  116. chia/_tests/util/blockchain.py +11 -5
  117. chia/_tests/util/blockchain_mock.py +1 -4
  118. chia/_tests/util/coin_store.py +29 -0
  119. chia/_tests/util/constants.py +2 -18
  120. chia/_tests/util/full_sync.py +3 -3
  121. chia/_tests/util/generator_tools_testing.py +2 -3
  122. chia/_tests/util/key_tool.py +2 -3
  123. chia/_tests/util/misc.py +33 -31
  124. chia/_tests/util/network_protocol_data.py +19 -17
  125. chia/_tests/util/protocol_messages_bytes-v1.0 +0 -0
  126. chia/_tests/util/protocol_messages_json.py +3 -1
  127. chia/_tests/util/run_block.py +2 -2
  128. chia/_tests/util/setup_nodes.py +7 -7
  129. chia/_tests/util/spend_sim.py +47 -55
  130. chia/_tests/util/test_condition_tools.py +5 -4
  131. chia/_tests/util/test_config.py +2 -2
  132. chia/_tests/util/test_dump_keyring.py +1 -1
  133. chia/_tests/util/test_full_block_utils.py +12 -14
  134. chia/_tests/util/test_misc.py +2 -2
  135. chia/_tests/util/test_paginator.py +4 -4
  136. chia/_tests/util/test_priority_mutex.py +2 -2
  137. chia/_tests/util/test_replace_str_to_bytes.py +15 -5
  138. chia/_tests/util/test_ssl_check.py +1 -1
  139. chia/_tests/util/test_testnet_overrides.py +13 -3
  140. chia/_tests/util/time_out_assert.py +4 -2
  141. chia/_tests/wallet/cat_wallet/test_cat_lifecycle.py +1 -1
  142. chia/_tests/wallet/cat_wallet/test_cat_outer_puzzle.py +1 -2
  143. chia/_tests/wallet/cat_wallet/test_cat_wallet.py +352 -432
  144. chia/_tests/wallet/cat_wallet/test_offer_lifecycle.py +3 -6
  145. chia/_tests/wallet/cat_wallet/test_trades.py +53 -77
  146. chia/_tests/wallet/clawback/test_clawback_decorator.py +3 -1
  147. chia/_tests/wallet/clawback/test_clawback_lifecycle.py +3 -3
  148. chia/_tests/wallet/clawback/test_clawback_metadata.py +4 -2
  149. chia/_tests/wallet/conftest.py +11 -12
  150. chia/_tests/wallet/db_wallet/test_db_graftroot.py +11 -4
  151. chia/_tests/wallet/db_wallet/test_dl_offers.py +433 -130
  152. chia/_tests/wallet/db_wallet/test_dl_wallet.py +3 -3
  153. chia/_tests/wallet/did_wallet/test_did.py +2132 -2000
  154. chia/_tests/wallet/nft_wallet/config.py +1 -1
  155. chia/_tests/wallet/nft_wallet/test_nft_1_offers.py +1610 -742
  156. chia/_tests/wallet/nft_wallet/test_nft_bulk_mint.py +486 -907
  157. chia/_tests/wallet/nft_wallet/test_nft_lifecycle.py +4 -4
  158. chia/_tests/wallet/nft_wallet/test_nft_wallet.py +517 -294
  159. chia/_tests/wallet/rpc/test_dl_wallet_rpc.py +133 -62
  160. chia/_tests/wallet/rpc/test_wallet_rpc.py +305 -184
  161. chia/_tests/wallet/simple_sync/test_simple_sync_protocol.py +10 -6
  162. chia/_tests/wallet/sync/test_wallet_sync.py +89 -60
  163. chia/_tests/wallet/test_clvm_casts.py +88 -0
  164. chia/_tests/wallet/test_coin_management.py +1 -1
  165. chia/_tests/wallet/test_coin_selection.py +1 -1
  166. chia/_tests/wallet/test_conditions.py +1 -1
  167. chia/_tests/wallet/test_new_wallet_protocol.py +13 -11
  168. chia/_tests/wallet/test_notifications.py +5 -3
  169. chia/_tests/wallet/test_sign_coin_spends.py +6 -6
  170. chia/_tests/wallet/test_signer_protocol.py +13 -12
  171. chia/_tests/wallet/test_singleton.py +1 -1
  172. chia/_tests/wallet/test_singleton_lifecycle_fast.py +5 -7
  173. chia/_tests/wallet/test_util.py +2 -2
  174. chia/_tests/wallet/test_wallet.py +108 -29
  175. chia/_tests/wallet/test_wallet_action_scope.py +9 -2
  176. chia/_tests/wallet/test_wallet_blockchain.py +2 -3
  177. chia/_tests/wallet/test_wallet_key_val_store.py +1 -2
  178. chia/_tests/wallet/test_wallet_node.py +2 -4
  179. chia/_tests/wallet/test_wallet_retry.py +4 -2
  180. chia/_tests/wallet/test_wallet_state_manager.py +191 -5
  181. chia/_tests/wallet/test_wallet_test_framework.py +1 -1
  182. chia/_tests/wallet/vc_wallet/test_vc_lifecycle.py +8 -8
  183. chia/_tests/wallet/vc_wallet/test_vc_wallet.py +29 -12
  184. chia/_tests/wallet/wallet_block_tools.py +6 -6
  185. chia/_tests/weight_proof/test_weight_proof.py +10 -48
  186. chia/apis.py +1 -1
  187. chia/cmds/beta.py +1 -1
  188. chia/cmds/chia.py +9 -9
  189. chia/cmds/cmd_classes.py +12 -11
  190. chia/cmds/cmd_helpers.py +1 -1
  191. chia/cmds/cmds_util.py +12 -9
  192. chia/cmds/coin_funcs.py +2 -2
  193. chia/cmds/configure.py +2 -2
  194. chia/cmds/data.py +0 -2
  195. chia/cmds/data_funcs.py +1 -1
  196. chia/cmds/db_validate_func.py +1 -2
  197. chia/cmds/dev/__init__.py +0 -0
  198. chia/cmds/dev/data.py +273 -0
  199. chia/cmds/{gh.py → dev/gh.py} +5 -5
  200. chia/cmds/dev/main.py +22 -0
  201. chia/cmds/dev/mempool.py +78 -0
  202. chia/cmds/dev/mempool_funcs.py +63 -0
  203. chia/cmds/farm_funcs.py +5 -4
  204. chia/cmds/init_funcs.py +11 -11
  205. chia/cmds/keys.py +2 -2
  206. chia/cmds/keys_funcs.py +4 -4
  207. chia/cmds/netspace_funcs.py +1 -1
  208. chia/cmds/peer_funcs.py +2 -2
  209. chia/cmds/plotnft_funcs.py +72 -26
  210. chia/cmds/rpc.py +1 -1
  211. chia/cmds/show_funcs.py +5 -5
  212. chia/cmds/signer.py +8 -7
  213. chia/cmds/sim_funcs.py +8 -9
  214. chia/cmds/wallet.py +2 -2
  215. chia/cmds/wallet_funcs.py +165 -131
  216. chia/{util → consensus}/augmented_chain.py +1 -2
  217. chia/consensus/block_body_validation.py +54 -40
  218. chia/consensus/block_creation.py +42 -76
  219. chia/consensus/block_header_validation.py +32 -26
  220. chia/consensus/block_record.py +0 -3
  221. chia/consensus/blockchain.py +23 -32
  222. chia/consensus/blockchain_interface.py +1 -5
  223. chia/consensus/check_time_locks.py +57 -0
  224. chia/consensus/coin_store_protocol.py +151 -0
  225. chia/consensus/coinbase.py +0 -6
  226. chia/consensus/condition_costs.py +4 -0
  227. chia/{util → consensus}/condition_tools.py +4 -5
  228. chia/consensus/cost_calculator.py +1 -1
  229. chia/consensus/default_constants.py +32 -9
  230. chia/consensus/deficit.py +1 -3
  231. chia/consensus/difficulty_adjustment.py +1 -2
  232. chia/consensus/find_fork_point.py +1 -3
  233. chia/consensus/full_block_to_block_record.py +1 -6
  234. chia/{util → consensus}/generator_tools.py +1 -3
  235. chia/consensus/get_block_challenge.py +30 -7
  236. chia/consensus/make_sub_epoch_summary.py +1 -5
  237. chia/consensus/multiprocess_validation.py +21 -20
  238. chia/consensus/pot_iterations.py +74 -13
  239. chia/{util → consensus}/prev_transaction_block.py +1 -1
  240. chia/consensus/vdf_info_computation.py +1 -3
  241. chia/daemon/keychain_proxy.py +5 -5
  242. chia/daemon/server.py +22 -5
  243. chia/data_layer/data_layer.py +92 -51
  244. chia/{rpc → data_layer}/data_layer_rpc_api.py +1 -1
  245. chia/{rpc → data_layer}/data_layer_rpc_util.py +3 -6
  246. chia/data_layer/data_layer_util.py +4 -6
  247. chia/data_layer/data_layer_wallet.py +42 -69
  248. chia/data_layer/dl_wallet_store.py +12 -6
  249. chia/data_layer/download_data.py +3 -3
  250. chia/data_layer/s3_plugin_service.py +0 -1
  251. chia/farmer/farmer.py +3 -4
  252. chia/farmer/farmer_api.py +11 -7
  253. chia/{rpc → farmer}/farmer_rpc_client.py +1 -1
  254. chia/full_node/block_height_map.py +7 -6
  255. chia/full_node/block_store.py +5 -7
  256. chia/full_node/bundle_tools.py +1 -2
  257. chia/full_node/coin_store.py +143 -124
  258. chia/{types → full_node}/eligible_coin_spends.py +39 -70
  259. chia/full_node/fee_estimator.py +1 -1
  260. chia/full_node/fee_estimator_interface.py +0 -8
  261. chia/full_node/fee_tracker.py +25 -25
  262. chia/full_node/full_node.py +70 -53
  263. chia/full_node/full_node_api.py +57 -40
  264. chia/{rpc → full_node}/full_node_rpc_api.py +87 -8
  265. chia/{rpc → full_node}/full_node_rpc_client.py +7 -6
  266. chia/full_node/full_node_store.py +23 -8
  267. chia/full_node/mempool.py +206 -53
  268. chia/full_node/mempool_check_conditions.py +20 -63
  269. chia/full_node/mempool_manager.py +26 -40
  270. chia/full_node/subscriptions.py +1 -3
  271. chia/full_node/tx_processing_queue.py +50 -3
  272. chia/full_node/weight_proof.py +46 -37
  273. chia/harvester/harvester.py +1 -1
  274. chia/harvester/harvester_api.py +22 -7
  275. chia/introducer/introducer.py +1 -1
  276. chia/introducer/introducer_api.py +1 -1
  277. chia/plot_sync/exceptions.py +1 -1
  278. chia/plot_sync/receiver.py +1 -1
  279. chia/plot_sync/sender.py +2 -2
  280. chia/pools/pool_puzzles.py +13 -18
  281. chia/pools/pool_wallet.py +23 -46
  282. chia/protocols/farmer_protocol.py +11 -3
  283. chia/protocols/full_node_protocol.py +1 -4
  284. chia/protocols/harvester_protocol.py +3 -3
  285. chia/protocols/pool_protocol.py +1 -2
  286. chia/protocols/shared_protocol.py +3 -3
  287. chia/protocols/timelord_protocol.py +1 -3
  288. chia/protocols/wallet_protocol.py +3 -3
  289. chia/rpc/rpc_client.py +7 -8
  290. chia/rpc/rpc_server.py +3 -3
  291. chia/rpc/util.py +3 -1
  292. chia/seeder/crawler.py +1 -1
  293. chia/seeder/crawler_api.py +1 -1
  294. chia/seeder/dns_server.py +2 -0
  295. chia/seeder/start_crawler.py +3 -3
  296. chia/server/address_manager.py +286 -38
  297. chia/server/address_manager_store.py +0 -215
  298. chia/{types → server}/aliases.py +7 -7
  299. chia/server/api_protocol.py +1 -1
  300. chia/server/chia_policy.py +1 -1
  301. chia/server/node_discovery.py +76 -113
  302. chia/server/rate_limits.py +1 -1
  303. chia/server/resolve_peer_info.py +43 -0
  304. chia/server/server.py +5 -5
  305. chia/server/start_data_layer.py +4 -4
  306. chia/server/start_farmer.py +5 -4
  307. chia/server/start_full_node.py +5 -4
  308. chia/server/start_harvester.py +7 -5
  309. chia/server/start_introducer.py +2 -2
  310. chia/server/start_service.py +1 -1
  311. chia/server/start_timelord.py +7 -5
  312. chia/server/start_wallet.py +7 -5
  313. chia/server/ws_connection.py +1 -1
  314. chia/simulator/add_blocks_in_batches.py +2 -2
  315. chia/simulator/block_tools.py +245 -201
  316. chia/simulator/full_node_simulator.py +38 -10
  317. chia/simulator/setup_services.py +12 -12
  318. chia/simulator/simulator_full_node_rpc_api.py +2 -2
  319. chia/simulator/simulator_full_node_rpc_client.py +2 -2
  320. chia/simulator/simulator_test_tools.py +2 -2
  321. chia/simulator/start_simulator.py +1 -1
  322. chia/simulator/wallet_tools.py +10 -18
  323. chia/ssl/create_ssl.py +1 -1
  324. chia/timelord/iters_from_block.py +14 -14
  325. chia/timelord/timelord.py +15 -11
  326. chia/timelord/timelord_api.py +14 -2
  327. chia/timelord/timelord_state.py +20 -14
  328. chia/types/blockchain_format/program.py +53 -10
  329. chia/types/blockchain_format/proof_of_space.py +73 -19
  330. chia/types/coin_spend.py +3 -56
  331. chia/types/generator_types.py +28 -0
  332. chia/types/internal_mempool_item.py +1 -2
  333. chia/types/mempool_item.py +12 -7
  334. chia/types/unfinished_header_block.py +1 -2
  335. chia/types/validation_state.py +1 -2
  336. chia/types/weight_proof.py +1 -3
  337. chia/util/action_scope.py +3 -3
  338. chia/util/block_cache.py +1 -2
  339. chia/util/byte_types.py +1 -1
  340. chia/util/casts.py +21 -0
  341. chia/util/config.py +0 -37
  342. chia/util/db_wrapper.py +8 -1
  343. chia/util/errors.py +3 -2
  344. chia/util/initial-config.yaml +21 -5
  345. chia/util/keychain.py +6 -7
  346. chia/util/keyring_wrapper.py +5 -5
  347. chia/util/limited_semaphore.py +1 -1
  348. chia/util/priority_mutex.py +1 -1
  349. chia/util/streamable.py +63 -5
  350. chia/util/task_timing.py +1 -1
  351. chia/util/virtual_project_analysis.py +1 -1
  352. chia/wallet/cat_wallet/cat_info.py +7 -3
  353. chia/wallet/cat_wallet/cat_outer_puzzle.py +9 -5
  354. chia/wallet/cat_wallet/cat_utils.py +1 -1
  355. chia/wallet/cat_wallet/cat_wallet.py +44 -36
  356. chia/wallet/cat_wallet/lineage_store.py +7 -0
  357. chia/wallet/cat_wallet/r_cat_wallet.py +273 -0
  358. chia/wallet/conditions.py +5 -10
  359. chia/wallet/db_wallet/db_wallet_puzzles.py +4 -4
  360. chia/wallet/derivation_record.py +33 -0
  361. chia/wallet/derive_keys.py +3 -3
  362. chia/wallet/did_wallet/did_info.py +12 -3
  363. chia/wallet/did_wallet/did_wallet.py +132 -101
  364. chia/wallet/did_wallet/did_wallet_puzzles.py +9 -9
  365. chia/wallet/driver_protocol.py +3 -1
  366. chia/{types/spend_bundle.py → wallet/estimate_fees.py} +2 -7
  367. chia/wallet/nft_wallet/metadata_outer_puzzle.py +5 -3
  368. chia/wallet/nft_wallet/nft_puzzle_utils.py +1 -1
  369. chia/wallet/nft_wallet/nft_wallet.py +69 -112
  370. chia/wallet/nft_wallet/ownership_outer_puzzle.py +5 -3
  371. chia/wallet/nft_wallet/singleton_outer_puzzle.py +6 -4
  372. chia/wallet/nft_wallet/transfer_program_puzzle.py +4 -2
  373. chia/wallet/nft_wallet/uncurry_nft.py +4 -6
  374. chia/wallet/notification_manager.py +2 -3
  375. chia/wallet/outer_puzzles.py +7 -2
  376. chia/wallet/puzzle_drivers.py +1 -1
  377. chia/wallet/puzzles/clawback/drivers.py +5 -4
  378. chia/wallet/puzzles/p2_delegated_puzzle_or_hidden_puzzle.py +1 -1
  379. chia/wallet/puzzles/singleton_top_layer.py +2 -1
  380. chia/wallet/puzzles/singleton_top_layer_v1_1.py +2 -1
  381. chia/wallet/puzzles/tails.py +1 -3
  382. chia/wallet/signer_protocol.py +5 -6
  383. chia/wallet/singleton.py +5 -4
  384. chia/wallet/singleton_record.py +1 -1
  385. chia/wallet/trade_manager.py +18 -20
  386. chia/wallet/trade_record.py +3 -6
  387. chia/wallet/trading/offer.py +12 -13
  388. chia/wallet/uncurried_puzzle.py +2 -2
  389. chia/wallet/util/compute_additions.py +58 -0
  390. chia/wallet/util/compute_hints.py +3 -3
  391. chia/wallet/util/compute_memos.py +4 -4
  392. chia/wallet/util/curry_and_treehash.py +2 -1
  393. chia/wallet/util/debug_spend_bundle.py +1 -1
  394. chia/wallet/util/merkle_tree.py +1 -1
  395. chia/wallet/util/peer_request_cache.py +1 -2
  396. chia/wallet/util/tx_config.py +3 -8
  397. chia/wallet/util/wallet_sync_utils.py +10 -5
  398. chia/wallet/util/wallet_types.py +1 -0
  399. chia/wallet/vc_wallet/cr_cat_drivers.py +17 -18
  400. chia/wallet/vc_wallet/cr_cat_wallet.py +30 -28
  401. chia/wallet/vc_wallet/cr_outer_puzzle.py +5 -3
  402. chia/wallet/vc_wallet/vc_drivers.py +50 -8
  403. chia/wallet/vc_wallet/vc_store.py +3 -5
  404. chia/wallet/vc_wallet/vc_wallet.py +15 -22
  405. chia/wallet/wallet.py +36 -46
  406. chia/wallet/wallet_action_scope.py +73 -4
  407. chia/wallet/wallet_blockchain.py +1 -3
  408. chia/wallet/wallet_interested_store.py +1 -1
  409. chia/wallet/wallet_nft_store.py +3 -3
  410. chia/wallet/wallet_node.py +17 -16
  411. chia/wallet/wallet_node_api.py +4 -5
  412. chia/wallet/wallet_pool_store.py +1 -1
  413. chia/wallet/wallet_protocol.py +2 -0
  414. chia/wallet/wallet_puzzle_store.py +1 -1
  415. chia/{rpc → wallet}/wallet_request_types.py +670 -81
  416. chia/{rpc → wallet}/wallet_rpc_api.py +735 -766
  417. chia/{rpc → wallet}/wallet_rpc_client.py +268 -420
  418. chia/wallet/wallet_singleton_store.py +8 -7
  419. chia/wallet/wallet_spend_bundle.py +4 -3
  420. chia/wallet/wallet_state_manager.py +320 -191
  421. chia/wallet/wallet_weight_proof_handler.py +1 -2
  422. chia/wallet/wsm_apis.py +98 -0
  423. {chia_blockchain-2.5.4rc2.dist-info → chia_blockchain-2.5.5rc1.dist-info}/METADATA +7 -7
  424. {chia_blockchain-2.5.4rc2.dist-info → chia_blockchain-2.5.5rc1.dist-info}/RECORD +443 -436
  425. mozilla-ca/cacert.pem +3 -165
  426. chia/_tests/fee_estimation/test_mempoolitem_height_added.py +0 -145
  427. chia/cmds/dev.py +0 -18
  428. chia/types/blockchain_format/slots.py +0 -9
  429. chia/types/blockchain_format/sub_epoch_summary.py +0 -5
  430. chia/types/end_of_slot_bundle.py +0 -5
  431. chia/types/full_block.py +0 -5
  432. chia/types/header_block.py +0 -5
  433. chia/types/spend_bundle_conditions.py +0 -7
  434. chia/types/transaction_queue_entry.py +0 -56
  435. chia/types/unfinished_block.py +0 -5
  436. /chia/cmds/{installers.py → dev/installers.py} +0 -0
  437. /chia/cmds/{sim.py → dev/sim.py} +0 -0
  438. /chia/{util → cmds}/dump_keyring.py +0 -0
  439. /chia/{full_node → consensus}/signage_point.py +0 -0
  440. /chia/{rpc → data_layer}/data_layer_rpc_client.py +0 -0
  441. /chia/{rpc → farmer}/farmer_rpc_api.py +0 -0
  442. /chia/{util → full_node}/full_block_utils.py +0 -0
  443. /chia/{rpc → harvester}/harvester_rpc_api.py +0 -0
  444. /chia/{rpc → harvester}/harvester_rpc_client.py +0 -0
  445. /chia/{full_node → protocols}/fee_estimate.py +0 -0
  446. /chia/{server → protocols}/outbound_message.py +0 -0
  447. /chia/{rpc → seeder}/crawler_rpc_api.py +0 -0
  448. /chia/{util → simulator}/vdf_prover.py +0 -0
  449. /chia/{util → ssl}/ssl_check.py +0 -0
  450. /chia/{rpc → timelord}/timelord_rpc_api.py +0 -0
  451. {chia_blockchain-2.5.4rc2.dist-info → chia_blockchain-2.5.5rc1.dist-info}/LICENSE +0 -0
  452. {chia_blockchain-2.5.4rc2.dist-info → chia_blockchain-2.5.5rc1.dist-info}/WHEEL +0 -0
  453. {chia_blockchain-2.5.4rc2.dist-info → chia_blockchain-2.5.5rc1.dist-info}/entry_points.txt +0 -0
chia/cmds/farm_funcs.py CHANGED
@@ -5,14 +5,15 @@ import traceback
5
5
  from pathlib import Path
6
6
  from typing import Any, Optional
7
7
 
8
+ from chia_rs import BlockRecord
9
+
8
10
  from chia.cmds.cmds_util import format_bytes, format_minutes, get_any_service_client
9
11
  from chia.cmds.units import units
10
- from chia.consensus.block_record import BlockRecord
11
- from chia.rpc.farmer_rpc_client import FarmerRpcClient
12
- from chia.rpc.full_node_rpc_client import FullNodeRpcClient
13
- from chia.rpc.wallet_rpc_client import WalletRpcClient
12
+ from chia.farmer.farmer_rpc_client import FarmerRpcClient
13
+ from chia.full_node.full_node_rpc_client import FullNodeRpcClient
14
14
  from chia.util.errors import CliRpcConnectionError
15
15
  from chia.util.network import is_localhost
16
+ from chia.wallet.wallet_rpc_client import WalletRpcClient
16
17
 
17
18
  SECONDS_PER_BLOCK = (24 * 3600) / 4608
18
19
 
chia/cmds/init_funcs.py CHANGED
@@ -9,8 +9,15 @@ from typing import Any, Optional
9
9
  import yaml
10
10
 
11
11
  from chia.cmds.configure import configure
12
- from chia.consensus.coinbase import create_puzzlehash_for_pk
13
12
  from chia.ssl.create_ssl import create_all_ssl
13
+ from chia.ssl.ssl_check import (
14
+ DEFAULT_PERMISSIONS_CERT_FILE,
15
+ DEFAULT_PERMISSIONS_KEY_FILE,
16
+ RESTRICT_MASK_CERT_FILE,
17
+ RESTRICT_MASK_KEY_FILE,
18
+ check_and_fix_permissions_for_ssl_file,
19
+ fix_ssl,
20
+ )
14
21
  from chia.util.bech32m import encode_puzzle_hash
15
22
  from chia.util.config import (
16
23
  create_default_chia_config,
@@ -23,14 +30,6 @@ from chia.util.config import (
23
30
  from chia.util.db_version import set_db_version
24
31
  from chia.util.keychain import Keychain
25
32
  from chia.util.path import path_from_root
26
- from chia.util.ssl_check import (
27
- DEFAULT_PERMISSIONS_CERT_FILE,
28
- DEFAULT_PERMISSIONS_KEY_FILE,
29
- RESTRICT_MASK_CERT_FILE,
30
- RESTRICT_MASK_KEY_FILE,
31
- check_and_fix_permissions_for_ssl_file,
32
- fix_ssl,
33
- )
34
33
  from chia.wallet.derive_keys import (
35
34
  _derive_path,
36
35
  _derive_path_unhardened,
@@ -38,6 +37,7 @@ from chia.wallet.derive_keys import (
38
37
  master_sk_to_wallet_sk_intermediate,
39
38
  master_sk_to_wallet_sk_unhardened_intermediate,
40
39
  )
40
+ from chia.wallet.puzzles.p2_delegated_puzzle_or_hidden_puzzle import puzzle_hash_for_pk
41
41
 
42
42
 
43
43
  def dict_add_new_default(updated: dict[str, Any], default: dict[str, Any], do_not_migrate_keys: dict[str, Any]) -> None:
@@ -94,11 +94,11 @@ def check_keys(new_root: Path, keychain: Optional[Keychain] = None) -> None:
94
94
 
95
95
  all_targets.append(
96
96
  encode_puzzle_hash(
97
- create_puzzlehash_for_pk(_derive_path_unhardened(intermediate_o, [i]).get_g1()), prefix
97
+ puzzle_hash_for_pk(_derive_path_unhardened(intermediate_o, [i]).get_g1()), prefix
98
98
  )
99
99
  )
100
100
  all_targets.append(
101
- encode_puzzle_hash(create_puzzlehash_for_pk(_derive_path(intermediate_n, [i]).get_g1()), prefix)
101
+ encode_puzzle_hash(puzzle_hash_for_pk(_derive_path(intermediate_n, [i]).get_g1()), prefix)
102
102
  )
103
103
  if all_targets[-1] == config["farmer"].get("xch_target_address") or all_targets[-2] == config[
104
104
  "farmer"
chia/cmds/keys.py CHANGED
@@ -379,11 +379,11 @@ def _resolve_fingerprint_and_sk(
379
379
 
380
380
  if non_observer_derivation and resolved_sk is None:
381
381
  print("Could not resolve private key for non-observer derivation")
382
- raise ResolutionError()
382
+ raise ResolutionError
383
383
 
384
384
  if reolved_fp is None:
385
385
  print("A fingerprint of a root key to derive from is required")
386
- raise ResolutionError()
386
+ raise ResolutionError
387
387
 
388
388
  return reolved_fp, resolved_sk
389
389
 
chia/cmds/keys_funcs.py CHANGED
@@ -10,7 +10,6 @@ from typing import Any, Optional, Union
10
10
  from chia_rs import AugSchemeMPL, G1Element, G2Element, PrivateKey
11
11
  from chia_rs.sized_ints import uint32
12
12
 
13
- from chia.consensus.coinbase import create_puzzlehash_for_pk
14
13
  from chia.types.signing_mode import SigningMode
15
14
  from chia.util.bech32m import bech32_encode, convertbits, encode_puzzle_hash
16
15
  from chia.util.config import load_config
@@ -31,6 +30,7 @@ from chia.wallet.derive_keys import (
31
30
  master_sk_to_pool_sk,
32
31
  master_sk_to_wallet_sk,
33
32
  )
33
+ from chia.wallet.puzzles.p2_delegated_puzzle_or_hidden_puzzle import puzzle_hash_for_pk
34
34
 
35
35
 
36
36
  def unlock_keyring() -> None:
@@ -197,7 +197,7 @@ def show_keys(
197
197
  first_wallet_pk = master_pk_to_wallet_pk_unhardened(key_data.public_key, uint32(0))
198
198
 
199
199
  if first_wallet_pk is not None:
200
- wallet_address: str = encode_puzzle_hash(create_puzzlehash_for_pk(first_wallet_pk), prefix)
200
+ wallet_address: str = encode_puzzle_hash(puzzle_hash_for_pk(first_wallet_pk), prefix)
201
201
  key["wallet_address"] = wallet_address
202
202
  else:
203
203
  key["wallet_address"] = None
@@ -423,7 +423,7 @@ def _search_derived(
423
423
  # Generate a wallet address using the standard p2_delegated_puzzle_or_hidden_puzzle puzzle
424
424
  assert child_pk is not None
425
425
  # TODO: consider generating addresses using other puzzles
426
- address = encode_puzzle_hash(create_puzzlehash_for_pk(child_pk), prefix)
426
+ address = encode_puzzle_hash(puzzle_hash_for_pk(child_pk), prefix)
427
427
 
428
428
  for term in remaining_search_terms:
429
429
  found_item: Any = None
@@ -682,7 +682,7 @@ def derive_wallet_address(
682
682
  pubkey = master_pk_to_wallet_pk_unhardened(pk, uint32(i))
683
683
  # Generate a wallet address using the standard p2_delegated_puzzle_or_hidden_puzzle puzzle
684
684
  # TODO: consider generating addresses using other puzzles
685
- address = encode_puzzle_hash(create_puzzlehash_for_pk(pubkey), prefix)
685
+ address = encode_puzzle_hash(puzzle_hash_for_pk(pubkey), prefix)
686
686
  if show_hd_path:
687
687
  print(
688
688
  f"Wallet address {i} "
@@ -6,7 +6,7 @@ from typing import Optional
6
6
  from chia_rs.sized_bytes import bytes32
7
7
 
8
8
  from chia.cmds.cmds_util import format_bytes, get_any_service_client
9
- from chia.rpc.full_node_rpc_client import FullNodeRpcClient
9
+ from chia.full_node.full_node_rpc_client import FullNodeRpcClient
10
10
 
11
11
 
12
12
  async def netstorge_async(root_path: Path, rpc_port: Optional[int], delta_block_height: str, start: str) -> None:
chia/cmds/peer_funcs.py CHANGED
@@ -26,7 +26,7 @@ async def add_node_connection(rpc_client: RpcClient, add_connection: str) -> Non
26
26
 
27
27
 
28
28
  async def remove_node_connection(rpc_client: RpcClient, remove_connection: str) -> None:
29
- from chia.server.outbound_message import NodeType
29
+ from chia.protocols.outbound_message import NodeType
30
30
 
31
31
  result_txt = ""
32
32
  if len(remove_connection) != 8:
@@ -52,7 +52,7 @@ async def remove_node_connection(rpc_client: RpcClient, remove_connection: str)
52
52
  async def print_connections(rpc_client: RpcClient, trusted_peers: dict[str, Any], trusted_cidrs: list[str]) -> None:
53
53
  import time
54
54
 
55
- from chia.server.outbound_message import NodeType
55
+ from chia.protocols.outbound_message import NodeType
56
56
  from chia.util.network import is_trusted_peer
57
57
 
58
58
  connections = await rpc_client.get_connections()
@@ -11,6 +11,7 @@ from pprint import pprint
11
11
  from typing import Any, Callable, Optional
12
12
 
13
13
  import aiohttp
14
+ import click
14
15
  from chia_rs.sized_bytes import bytes32
15
16
  from chia_rs.sized_ints import uint32, uint64
16
17
 
@@ -23,11 +24,15 @@ from chia.cmds.cmds_util import (
23
24
  )
24
25
  from chia.cmds.param_types import CliAddress
25
26
  from chia.cmds.wallet_funcs import print_balance, wallet_coin_unit
26
- from chia.pools.pool_config import PoolWalletConfig, load_pool_config, update_pool_config
27
+ from chia.farmer.farmer_rpc_client import FarmerRpcClient
28
+ from chia.pools.pool_config import (
29
+ PoolWalletConfig,
30
+ load_pool_config,
31
+ update_pool_config,
32
+ )
27
33
  from chia.pools.pool_wallet_info import PoolSingletonState, PoolWalletInfo
28
34
  from chia.protocols.pool_protocol import POOL_PROTOCOL_VERSION
29
- from chia.rpc.farmer_rpc_client import FarmerRpcClient
30
- from chia.rpc.wallet_rpc_client import WalletRpcClient
35
+ from chia.rpc.rpc_client import ResponseFailureError
31
36
  from chia.server.server import ssl_context_for_root
32
37
  from chia.ssl.create_ssl import get_mozilla_ca_crt
33
38
  from chia.util.bech32m import encode_puzzle_hash
@@ -35,7 +40,16 @@ from chia.util.default_root import DEFAULT_ROOT_PATH
35
40
  from chia.util.errors import CliRpcConnectionError
36
41
  from chia.wallet.transaction_record import TransactionRecord
37
42
  from chia.wallet.util.address_type import AddressType
43
+ from chia.wallet.util.tx_config import DEFAULT_TX_CONFIG
38
44
  from chia.wallet.util.wallet_types import WalletType
45
+ from chia.wallet.wallet_request_types import (
46
+ PWAbsorbRewards,
47
+ PWJoinPool,
48
+ PWSelfPool,
49
+ PWStatus,
50
+ TransactionEndpointResponse,
51
+ )
52
+ from chia.wallet.wallet_rpc_client import WalletRpcClient
39
53
 
40
54
 
41
55
  async def create_pool_args(pool_url: str) -> dict[str, Any]:
@@ -190,7 +204,7 @@ async def pprint_all_pool_wallet_state(
190
204
  pool_wallet_id = wallet_info["id"]
191
205
  typ = WalletType(int(wallet_info["type"]))
192
206
  if typ == WalletType.POOLING_WALLET:
193
- pool_wallet_info, _ = await wallet_client.pw_status(pool_wallet_id)
207
+ pool_wallet_info = (await wallet_client.pw_status(PWStatus(uint32(pool_wallet_id)))).state
194
208
  await pprint_pool_wallet_state(
195
209
  wallet_client,
196
210
  pool_wallet_id,
@@ -223,7 +237,7 @@ async def show(
223
237
  for pool_state_item in pool_state_list
224
238
  }
225
239
  if wallet_id_passed_in is not None:
226
- pool_wallet_info, _ = await wallet_info.client.pw_status(wallet_id_passed_in)
240
+ pool_wallet_info = (await wallet_info.client.pw_status(PWStatus(uint32(wallet_id_passed_in)))).state
227
241
  await pprint_pool_wallet_state(
228
242
  wallet_info.client,
229
243
  wallet_id_passed_in,
@@ -251,7 +265,7 @@ async def get_login_link(launcher_id: bytes32, root_path: Path) -> None:
251
265
  async def submit_tx_with_confirmation(
252
266
  message: str,
253
267
  prompt: bool,
254
- func: Callable[[], Awaitable[dict[str, Any]]],
268
+ func: Callable[[], Awaitable[TransactionEndpointResponse]],
255
269
  wallet_client: WalletRpcClient,
256
270
  fingerprint: int,
257
271
  wallet_id: int,
@@ -261,15 +275,19 @@ async def submit_tx_with_confirmation(
261
275
  cli_confirm("Confirm (y/n): ", "Aborting.")
262
276
  try:
263
277
  result = await func()
264
- tx_record: TransactionRecord = result["transaction"]
265
278
  start = time.time()
266
- while time.time() - start < 10:
267
- await asyncio.sleep(0.1)
268
- tx = await wallet_client.get_transaction(tx_record.name)
269
- if len(tx.sent_to) > 0:
270
- print(transaction_submitted_msg(tx))
271
- print(transaction_status_msg(fingerprint, tx_record.name))
272
- return None
279
+ for tx_record in result.transactions:
280
+ if tx_record.spend_bundle is None:
281
+ continue
282
+ while time.time() - start < 10:
283
+ await asyncio.sleep(0.1)
284
+ tx = await wallet_client.get_transaction(tx_record.name)
285
+ if len(tx.sent_to) > 0:
286
+ print(transaction_submitted_msg(tx))
287
+ print(transaction_status_msg(fingerprint, tx_record.name))
288
+ return
289
+ except ResponseFailureError:
290
+ raise
273
291
  except Exception as e:
274
292
  print(f"Error performing operation on Plot NFT -f {fingerprint} wallet id: {wallet_id}: {e}")
275
293
 
@@ -307,6 +325,17 @@ async def join_pool(
307
325
  ) -> None:
308
326
  selected_wallet_id = await wallet_id_lookup_and_check(wallet_info.client, wallet_id)
309
327
 
328
+ sync_status = await wallet_info.client.get_sync_status()
329
+ if not sync_status.synced:
330
+ raise click.ClickException("Wallet must be synced before joining a pool.")
331
+
332
+ pool_wallet_info = (await wallet_info.client.pw_status(PWStatus(uint32(selected_wallet_id)))).state
333
+ if (
334
+ pool_wallet_info.current.state == PoolSingletonState.FARMING_TO_POOL.value
335
+ and pool_wallet_info.current.pool_url == pool_url
336
+ ):
337
+ raise click.ClickException(f"Wallet id: {wallet_id} is already farming to pool {pool_url}")
338
+
310
339
  enforce_https = wallet_info.config["selected_network"] == "mainnet"
311
340
 
312
341
  if enforce_https and not pool_url.startswith("https://"):
@@ -333,15 +362,24 @@ async def join_pool(
333
362
  msg = f"\nWill join pool: {pool_url} with Plot NFT {wallet_info.fingerprint}."
334
363
  func = functools.partial(
335
364
  wallet_info.client.pw_join_pool,
336
- selected_wallet_id,
337
- bytes32.from_hexstr(json_dict["target_puzzle_hash"]),
338
- pool_url,
339
- json_dict["relative_lock_height"],
340
- fee,
365
+ PWJoinPool(
366
+ wallet_id=uint32(selected_wallet_id),
367
+ target_puzzlehash=bytes32.from_hexstr(json_dict["target_puzzle_hash"]),
368
+ pool_url=pool_url,
369
+ relative_lock_height=json_dict["relative_lock_height"],
370
+ fee=fee,
371
+ push=True,
372
+ ),
373
+ DEFAULT_TX_CONFIG,
341
374
  )
342
375
 
343
376
  await submit_tx_with_confirmation(
344
- msg, prompt, func, wallet_info.client, wallet_info.fingerprint, selected_wallet_id
377
+ msg,
378
+ prompt,
379
+ func,
380
+ wallet_info.client,
381
+ wallet_info.fingerprint,
382
+ selected_wallet_id,
345
383
  )
346
384
 
347
385
 
@@ -351,7 +389,11 @@ async def self_pool(*, wallet_info: WalletClientInfo, fee: uint64, wallet_id: Op
351
389
  "Will start self-farming with Plot NFT on wallet id "
352
390
  f"{selected_wallet_id} fingerprint {wallet_info.fingerprint}."
353
391
  )
354
- func = functools.partial(wallet_info.client.pw_self_pool, selected_wallet_id, fee)
392
+ func = functools.partial(
393
+ wallet_info.client.pw_self_pool,
394
+ PWSelfPool(wallet_id=uint32(selected_wallet_id), fee=fee, push=True),
395
+ DEFAULT_TX_CONFIG,
396
+ )
355
397
  await submit_tx_with_confirmation(
356
398
  msg, prompt, func, wallet_info.client, wallet_info.fingerprint, selected_wallet_id
357
399
  )
@@ -359,13 +401,13 @@ async def self_pool(*, wallet_info: WalletClientInfo, fee: uint64, wallet_id: Op
359
401
 
360
402
  async def inspect_cmd(wallet_info: WalletClientInfo, wallet_id: Optional[int]) -> None:
361
403
  selected_wallet_id = await wallet_id_lookup_and_check(wallet_info.client, wallet_id)
362
- pool_wallet_info, unconfirmed_transactions = await wallet_info.client.pw_status(selected_wallet_id)
404
+ res = await wallet_info.client.pw_status(PWStatus(uint32(selected_wallet_id)))
363
405
  print(
364
406
  json.dumps(
365
407
  {
366
- "pool_wallet_info": pool_wallet_info.to_json_dict(),
408
+ "pool_wallet_info": res.state.to_json_dict(),
367
409
  "unconfirmed_transactions": [
368
- {"sent_to": tx.sent_to, "transaction_id": tx.name.hex()} for tx in unconfirmed_transactions
410
+ {"sent_to": tx.sent_to, "transaction_id": tx.name.hex()} for tx in res.unconfirmed_transactions
369
411
  ],
370
412
  }
371
413
  )
@@ -377,8 +419,12 @@ async def claim_cmd(*, wallet_info: WalletClientInfo, fee: uint64, wallet_id: Op
377
419
  msg = f"\nWill claim rewards for wallet ID: {selected_wallet_id}."
378
420
  func = functools.partial(
379
421
  wallet_info.client.pw_absorb_rewards,
380
- selected_wallet_id,
381
- fee,
422
+ PWAbsorbRewards(
423
+ wallet_id=uint32(selected_wallet_id),
424
+ fee=fee,
425
+ push=True,
426
+ ),
427
+ DEFAULT_TX_CONFIG,
382
428
  )
383
429
  await submit_tx_with_confirmation(msg, False, func, wallet_info.client, wallet_info.fingerprint, selected_wallet_id)
384
430
 
chia/cmds/rpc.py CHANGED
@@ -131,7 +131,7 @@ def status_cmd(ctx: click.Context, json_output: bool) -> None:
131
131
  status = "ACTIVE"
132
132
  try:
133
133
  if not get_routes(service, config, root_path=root_path, quiet=True)["success"]:
134
- raise Exception()
134
+ raise Exception
135
135
  except Exception:
136
136
  status = "INACTIVE"
137
137
  status_data[service] = status
chia/cmds/show_funcs.py CHANGED
@@ -6,16 +6,16 @@ from typing import Any, Optional, Union
6
6
 
7
7
  from chia_rs.sized_bytes import bytes32
8
8
 
9
- from chia.rpc.full_node_rpc_client import FullNodeRpcClient
9
+ from chia.full_node.full_node_rpc_client import FullNodeRpcClient
10
10
 
11
11
 
12
12
  async def print_blockchain_state(node_client: FullNodeRpcClient, config: dict[str, Any]) -> bool:
13
13
  import time
14
14
 
15
+ from chia_rs import BlockRecord
15
16
  from chia_rs.sized_ints import uint64
16
17
 
17
18
  from chia.cmds.cmds_util import format_bytes
18
- from chia.consensus.block_record import BlockRecord
19
19
 
20
20
  blockchain_state = await node_client.get_blockchain_state()
21
21
  if blockchain_state is None:
@@ -99,10 +99,9 @@ async def print_block_from_hash(
99
99
  ) -> None:
100
100
  import time
101
101
 
102
+ from chia_rs import BlockRecord, FullBlock
102
103
  from chia_rs.sized_bytes import bytes32
103
104
 
104
- from chia.consensus.block_record import BlockRecord
105
- from chia.types.full_block import FullBlock
106
105
  from chia.util.bech32m import encode_puzzle_hash
107
106
 
108
107
  block: Optional[BlockRecord] = await node_client.get_block_record(bytes32.from_hexstr(block_by_header_hash))
@@ -153,7 +152,8 @@ async def print_block_from_hash(
153
152
  f"Total VDF Iterations {block.total_iters}\n"
154
153
  f"Is a Transaction Block?{block.is_transaction_block}\n"
155
154
  f"Deficit {block.deficit}\n"
156
- f"PoSpace 'k' Size {full_block.reward_chain_block.proof_of_space.size}\n"
155
+ f"PoSpace 'k' Size (v1) {full_block.reward_chain_block.proof_of_space.size().size_v1}\n"
156
+ f"PoSpace 'k' Size (v2) {full_block.reward_chain_block.proof_of_space.size().size_v2}\n"
157
157
  f"Plot Public Key 0x{full_block.reward_chain_block.proof_of_space.plot_public_key}\n"
158
158
  f"Pool Public Key {pool_pk}\n"
159
159
  f"Tx Filter Hash {tx_filter_hash}\n"
chia/cmds/signer.py CHANGED
@@ -17,23 +17,24 @@ from segno import QRCode, make_qr
17
17
  from chia.cmds.cmd_classes import chia_command, command_helper, option
18
18
  from chia.cmds.cmd_helpers import NeedsWalletRPC, TransactionsIn, TransactionsOut
19
19
  from chia.rpc.util import ALL_TRANSLATION_LAYERS
20
- from chia.rpc.wallet_request_types import (
21
- ApplySignatures,
22
- ExecuteSigningInstructions,
23
- GatherSigningInfo,
24
- PushTransactions,
25
- )
26
20
  from chia.util.streamable import Streamable
27
21
  from chia.wallet.signer_protocol import SignedTransaction, SigningInstructions, SigningResponse, Spend
28
22
  from chia.wallet.transaction_record import TransactionRecord
29
23
  from chia.wallet.util.clvm_streamable import byte_deserialize_clvm_streamable, byte_serialize_clvm_streamable
30
24
  from chia.wallet.util.tx_config import DEFAULT_TX_CONFIG
25
+ from chia.wallet.wallet_request_types import (
26
+ ApplySignatures,
27
+ ExecuteSigningInstructions,
28
+ GatherSigningInfo,
29
+ PushTransactions,
30
+ )
31
31
  from chia.wallet.wallet_spend_bundle import WalletSpendBundle
32
32
 
33
33
 
34
34
  def _clear_screen() -> None:
35
35
  # Cross-platform screen clear
36
- os.system("cls" if os.name == "nt" else "clear")
36
+ # TODO: consider if not-nt anyways could avoid os.system()
37
+ os.system("cls" if os.name == "nt" else "clear") # noqa: S605
37
38
 
38
39
 
39
40
  @click.group("signer", help="Get information for an external signer")
chia/cmds/sim_funcs.py CHANGED
@@ -14,12 +14,12 @@ from chia_rs.sized_ints import uint32
14
14
 
15
15
  from chia.cmds.cmds_util import get_any_service_client
16
16
  from chia.cmds.start_funcs import async_start
17
- from chia.consensus.coinbase import create_puzzlehash_for_pk
18
- from chia.server.outbound_message import NodeType
17
+ from chia.protocols.outbound_message import NodeType
18
+ from chia.server.resolve_peer_info import set_peer_info
19
19
  from chia.simulator.simulator_full_node_rpc_client import SimulatorFullNodeRpcClient
20
20
  from chia.types.coin_record import CoinRecord
21
21
  from chia.util.bech32m import decode_puzzle_hash, encode_puzzle_hash
22
- from chia.util.config import load_config, save_config, set_peer_info
22
+ from chia.util.config import load_config, save_config
23
23
  from chia.util.errors import KeychainFingerprintExists
24
24
  from chia.util.keychain import Keychain, bytes_to_mnemonic
25
25
  from chia.wallet.derive_keys import (
@@ -28,6 +28,7 @@ from chia.wallet.derive_keys import (
28
28
  master_sk_to_wallet_sk,
29
29
  master_sk_to_wallet_sk_unhardened,
30
30
  )
31
+ from chia.wallet.puzzles.p2_delegated_puzzle_or_hidden_puzzle import puzzle_hash_for_pk
31
32
 
32
33
 
33
34
  def get_ph_from_fingerprint(fingerprint: int, key_id: int = 1) -> bytes32:
@@ -36,7 +37,7 @@ def get_ph_from_fingerprint(fingerprint: int, key_id: int = 1) -> bytes32:
36
37
  raise Exception("Fingerprint not found")
37
38
  private_key = priv_key_and_entropy[0]
38
39
  sk_for_wallet_id: PrivateKey = master_sk_to_wallet_sk(private_key, uint32(key_id))
39
- puzzle_hash: bytes32 = create_puzzlehash_for_pk(sk_for_wallet_id.get_g1())
40
+ puzzle_hash: bytes32 = puzzle_hash_for_pk(sk_for_wallet_id.get_g1())
40
41
  return puzzle_hash
41
42
 
42
43
 
@@ -76,6 +77,7 @@ def create_chia_directory(
76
77
  config["network_overrides"]["config"]["simulator0"] = config["network_overrides"]["config"]["testnet0"].copy()
77
78
  sim_genesis = "eb8c4d20b322be8d9fddbf9412016bdffe9a2901d7edb0e364e94266d0e095f7"
78
79
  config["network_overrides"]["constants"]["simulator0"]["GENESIS_CHALLENGE"] = sim_genesis
80
+ config["network_overrides"]["constants"]["simulator0"]["AGG_SIG_ME_ADDITIONAL_DATA"] = sim_genesis
79
81
  # tell services to use simulator0
80
82
  config["selected_network"] = "simulator0"
81
83
  config["wallet"]["selected_network"] = "simulator0"
@@ -130,10 +132,7 @@ def create_chia_directory(
130
132
  # get fork heights then write back to config
131
133
  if "HARD_FORK_HEIGHT" not in sim_config: # this meh code is done so that we also write to the config file.
132
134
  sim_config["HARD_FORK_HEIGHT"] = 0
133
- if "SOFT_FORK6_HEIGHT" not in sim_config:
134
- sim_config["SOFT_FORK6_HEIGHT"] = 0
135
135
  simulator_consts["HARD_FORK_HEIGHT"] = sim_config["HARD_FORK_HEIGHT"]
136
- simulator_consts["SOFT_FORK6_HEIGHT"] = sim_config["SOFT_FORK6_HEIGHT"]
137
136
 
138
137
  # save config and return the config
139
138
  save_config(chia_root, "config.yaml", config)
@@ -155,7 +154,7 @@ def display_key_info(fingerprint: int, prefix: str) -> None:
155
154
  print("Farmer public key (m/12381/8444/0/0):", master_sk_to_farmer_sk(sk).get_g1())
156
155
  print("Pool public key (m/12381/8444/1/0):", master_sk_to_pool_sk(sk).get_g1())
157
156
  first_wallet_sk: PrivateKey = master_sk_to_wallet_sk_unhardened(sk, uint32(0))
158
- wallet_address: str = encode_puzzle_hash(create_puzzlehash_for_pk(first_wallet_sk.get_g1()), prefix)
157
+ wallet_address: str = encode_puzzle_hash(puzzle_hash_for_pk(first_wallet_sk.get_g1()), prefix)
159
158
  print(f"First wallet address: {wallet_address}")
160
159
  assert seed is not None
161
160
  print("Master private key (m):", bytes(sk).hex())
@@ -364,7 +363,7 @@ async def print_coin_records(
364
363
  num_per_screen = 5 if paginate else len(coin_records)
365
364
  # ripped from cmds/wallet_funcs.
366
365
  for i in range(0, len(coin_records), num_per_screen):
367
- for j in range(0, num_per_screen):
366
+ for j in range(num_per_screen):
368
367
  if i + j >= len(coin_records):
369
368
  break
370
369
  print_coin_record(
chia/cmds/wallet.py CHANGED
@@ -1171,9 +1171,9 @@ def nft_sign_message(
1171
1171
  @click.option("--no-did-ownership", help="Disable DID ownership support", is_flag=True, default=False)
1172
1172
  @click.option("-nh", "--hash", help="NFT content hash", type=str, required=True)
1173
1173
  @click.option("-u", "--uris", help="Comma separated list of URIs", type=str, required=True)
1174
- @click.option("-mh", "--metadata-hash", help="NFT metadata hash", type=str, default="")
1174
+ @click.option("-mh", "--metadata-hash", help="NFT metadata hash", type=str, default=None)
1175
1175
  @click.option("-mu", "--metadata-uris", help="Comma separated list of metadata URIs", type=str)
1176
- @click.option("-lh", "--license-hash", help="NFT license hash", type=str, default="")
1176
+ @click.option("-lh", "--license-hash", help="NFT license hash", type=str, default=None)
1177
1177
  @click.option("-lu", "--license-uris", help="Comma separated list of license URIs", type=str)
1178
1178
  @click.option("-et", "--edition-total", help="NFT edition total", type=int, show_default=True, default=1)
1179
1179
  @click.option("-en", "--edition-number", help="NFT edition number", show_default=True, default=1, type=int)