chia-blockchain 2.5.4rc1__py3-none-any.whl → 2.5.5__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 +529 -69
  63. chia/_tests/core/mempool/test_mempool_performance.py +3 -2
  64. chia/_tests/core/mempool/test_singleton_fast_forward.py +61 -132
  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 +495 -265
  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 +153 -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 +53 -47
  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 +274 -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.4rc1.dist-info → chia_blockchain-2.5.5.dist-info}/METADATA +7 -7
  424. {chia_blockchain-2.5.4rc1.dist-info → chia_blockchain-2.5.5.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.4rc1.dist-info → chia_blockchain-2.5.5.dist-info}/LICENSE +0 -0
  452. {chia_blockchain-2.5.4rc1.dist-info → chia_blockchain-2.5.5.dist-info}/WHEEL +0 -0
  453. {chia_blockchain-2.5.4rc1.dist-info → chia_blockchain-2.5.5.dist-info}/entry_points.txt +0 -0
@@ -1,11 +1,12 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import dataclasses
4
- from typing import Optional, TypeVar, Union
4
+ from typing import Optional, Union
5
5
 
6
6
  from aiosqlite import Row
7
7
  from chia_rs.sized_bytes import bytes32
8
8
  from chia_rs.sized_ints import uint16, uint32, uint64
9
+ from typing_extensions import Self
9
10
 
10
11
  from chia.data_layer.data_layer_wallet import Mirror
11
12
  from chia.data_layer.singleton_record import SingletonRecord
@@ -13,8 +14,6 @@ from chia.types.blockchain_format.coin import Coin
13
14
  from chia.util.db_wrapper import DBWrapper2, execute_fetchone
14
15
  from chia.wallet.lineage_proof import LineageProof
15
16
 
16
- _T_DataLayerStore = TypeVar("_T_DataLayerStore", bound="DataLayerStore")
17
-
18
17
 
19
18
  def _row_to_singleton_record(row: Row) -> SingletonRecord:
20
19
  return SingletonRecord(
@@ -38,7 +37,14 @@ def _row_to_mirror(row: Row, confirmed_at_height: Optional[uint32]) -> Mirror:
38
37
  url = byte_list[2 : length + 2]
39
38
  byte_list = byte_list[length + 2 :]
40
39
  urls.append(url)
41
- return Mirror(bytes32(row[0]), bytes32(row[1]), uint64.from_bytes(row[2]), urls, bool(row[4]), confirmed_at_height)
40
+ return Mirror(
41
+ bytes32(row[0]),
42
+ bytes32(row[1]),
43
+ uint64.from_bytes(row[2]),
44
+ Mirror.decode_urls(urls),
45
+ bool(row[4]),
46
+ confirmed_at_height,
47
+ )
42
48
 
43
49
 
44
50
  class DataLayerStore:
@@ -49,7 +55,7 @@ class DataLayerStore:
49
55
  db_wrapper: DBWrapper2
50
56
 
51
57
  @classmethod
52
- async def create(cls: type[_T_DataLayerStore], db_wrapper: DBWrapper2) -> _T_DataLayerStore:
58
+ async def create(cls, db_wrapper: DBWrapper2) -> Self:
53
59
  self = cls()
54
60
 
55
61
  self.db_wrapper = db_wrapper
@@ -315,7 +321,7 @@ class DataLayerStore:
315
321
  mirror.launcher_id,
316
322
  mirror.amount.stream_to_bytes(),
317
323
  b"".join(
318
- [uint16(len(url)).stream_to_bytes() + url for url in mirror.urls]
324
+ [uint16(len(url)).stream_to_bytes() + url for url in Mirror.encode_urls(mirror.urls)]
319
325
  ), # prefix each item with a length
320
326
  1 if mirror.ours else 0,
321
327
  ),
@@ -187,7 +187,7 @@ async def download_file(
187
187
  root_hash: bytes32,
188
188
  generation: int,
189
189
  server_info: ServerInfo,
190
- proxy_url: str,
190
+ proxy_url: Optional[str],
191
191
  downloader: Optional[PluginRemote],
192
192
  timeout: aiohttp.ClientTimeout,
193
193
  client_foldername: Path,
@@ -242,7 +242,7 @@ async def insert_from_delta_file(
242
242
  client_foldername: Path,
243
243
  timeout: aiohttp.ClientTimeout,
244
244
  log: logging.Logger,
245
- proxy_url: str,
245
+ proxy_url: Optional[str],
246
246
  downloader: Optional[PluginRemote],
247
247
  group_files_by_store: bool = False,
248
248
  maximum_full_file_count: int = 1,
@@ -357,7 +357,7 @@ def delete_full_file_if_exists(foldername: Path, store_id: bytes32, root: Root)
357
357
  async def http_download(
358
358
  target_filename_path: Path,
359
359
  filename: str,
360
- proxy_url: str,
360
+ proxy_url: Optional[str],
361
361
  server_info: ServerInfo,
362
362
  timeout: aiohttp.ClientTimeout,
363
363
  log: logging.Logger,
@@ -384,7 +384,6 @@ def read_store_ids_from_config(config: dict[str, Any]) -> list[StoreConfig]:
384
384
  else:
385
385
  bad_store_id = "<missing>"
386
386
  log.info(f"Ignoring invalid store id: {bad_store_id}: {type(e).__name__} {e}")
387
- pass
388
387
 
389
388
  return stores
390
389
 
chia/farmer/farmer.py CHANGED
@@ -14,7 +14,7 @@ from pathlib import Path
14
14
  from typing import TYPE_CHECKING, Any, ClassVar, Optional, Union, cast
15
15
 
16
16
  import aiohttp
17
- from chia_rs import AugSchemeMPL, ConsensusConstants, G1Element, G2Element, PrivateKey
17
+ from chia_rs import AugSchemeMPL, ConsensusConstants, G1Element, G2Element, PrivateKey, ProofOfSpace
18
18
  from chia_rs.sized_bytes import bytes32
19
19
  from chia_rs.sized_ints import uint8, uint16, uint32, uint64
20
20
 
@@ -23,6 +23,7 @@ from chia.plot_sync.delta import Delta
23
23
  from chia.plot_sync.receiver import Receiver
24
24
  from chia.pools.pool_config import PoolWalletConfig, load_pool_config, update_pool_url
25
25
  from chia.protocols import farmer_protocol, harvester_protocol
26
+ from chia.protocols.outbound_message import NodeType, make_msg
26
27
  from chia.protocols.pool_protocol import (
27
28
  AuthenticationPayload,
28
29
  ErrorResponse,
@@ -36,11 +37,9 @@ from chia.protocols.pool_protocol import (
36
37
  )
37
38
  from chia.protocols.protocol_message_types import ProtocolMessageTypes
38
39
  from chia.rpc.rpc_server import StateChangedProtocol, default_get_connections
39
- from chia.server.outbound_message import NodeType, make_msg
40
40
  from chia.server.server import ChiaServer, ssl_context_for_root
41
41
  from chia.server.ws_connection import WSChiaConnection
42
42
  from chia.ssl.create_ssl import get_mozilla_ca_crt
43
- from chia.types.blockchain_format.proof_of_space import ProofOfSpace
44
43
  from chia.util.bech32m import decode_puzzle_hash, encode_puzzle_hash
45
44
  from chia.util.byte_types import hexstr_to_bytes
46
45
  from chia.util.config import config_path_for_filename, load_config, lock_and_load_config, save_config
@@ -227,7 +226,7 @@ class Farmer:
227
226
  else:
228
227
  self.keychain_proxy = await connect_to_keychain_and_validate(self._root_path, self.log)
229
228
  if not self.keychain_proxy:
230
- raise KeychainProxyConnectionFailure()
229
+ raise KeychainProxyConnectionFailure
231
230
  return self.keychain_proxy
232
231
 
233
232
  async def get_all_private_keys(self) -> list[tuple[PrivateKey, bytes]]:
chia/farmer/farmer_api.py CHANGED
@@ -25,6 +25,7 @@ from chia.protocols.harvester_protocol import (
25
25
  SignatureRequestSourceData,
26
26
  SigningDataKind,
27
27
  )
28
+ from chia.protocols.outbound_message import Message, NodeType, make_msg
28
29
  from chia.protocols.pool_protocol import (
29
30
  PoolErrorCode,
30
31
  PostPartialPayload,
@@ -33,12 +34,10 @@ from chia.protocols.pool_protocol import (
33
34
  )
34
35
  from chia.protocols.protocol_message_types import ProtocolMessageTypes
35
36
  from chia.server.api_protocol import ApiMetadata
36
- from chia.server.outbound_message import Message, NodeType, make_msg
37
37
  from chia.server.server import ssl_context_for_root
38
38
  from chia.server.ws_connection import WSChiaConnection
39
39
  from chia.ssl.create_ssl import get_mozilla_ca_crt
40
40
  from chia.types.blockchain_format.proof_of_space import (
41
- calculate_prefix_bits,
42
41
  generate_plot_public_key,
43
42
  generate_taproot_sk,
44
43
  get_plot_id,
@@ -110,11 +109,13 @@ class FarmerAPI:
110
109
  self.farmer.number_of_responses[new_proof_of_space.sp_hash] += 1
111
110
 
112
111
  required_iters: uint64 = calculate_iterations_quality(
113
- self.farmer.constants.DIFFICULTY_CONSTANT_FACTOR,
112
+ self.farmer.constants,
114
113
  computed_quality_string,
115
- new_proof_of_space.proof.size,
114
+ new_proof_of_space.proof.size(),
116
115
  sp.difficulty,
117
116
  new_proof_of_space.sp_hash,
117
+ sp.sub_slot_iters,
118
+ sp.last_tx_height,
118
119
  )
119
120
 
120
121
  # If the iters are good enough to make a block, proceed with the block making flow
@@ -217,11 +218,13 @@ class FarmerAPI:
217
218
  return
218
219
 
219
220
  required_iters = calculate_iterations_quality(
220
- self.farmer.constants.DIFFICULTY_CONSTANT_FACTOR,
221
+ self.farmer.constants,
221
222
  computed_quality_string,
222
- new_proof_of_space.proof.size,
223
+ new_proof_of_space.proof.size(),
223
224
  pool_state_dict["current_difficulty"],
224
225
  new_proof_of_space.sp_hash,
226
+ sp.sub_slot_iters,
227
+ sp.last_tx_height,
225
228
  )
226
229
  if required_iters >= calculate_sp_interval_iters(
227
230
  self.farmer.constants, self.farmer.constants.POOL_SUB_SLOT_ITERS
@@ -532,7 +535,8 @@ class FarmerAPI:
532
535
  new_signage_point.signage_point_index,
533
536
  new_signage_point.challenge_chain_sp,
534
537
  pool_difficulties,
535
- uint8(calculate_prefix_bits(self.farmer.constants, new_signage_point.peak_height)),
538
+ new_signage_point.peak_height,
539
+ new_signage_point.last_tx_height,
536
540
  )
537
541
 
538
542
  msg = make_msg(ProtocolMessageTypes.new_signage_point_harvester, message)
@@ -4,7 +4,7 @@ from typing import Any, Optional, cast
4
4
 
5
5
  from chia_rs.sized_bytes import bytes32
6
6
 
7
- from chia.rpc.farmer_rpc_api import PlotInfoRequestData, PlotPathRequestData
7
+ from chia.farmer.farmer_rpc_api import PlotInfoRequestData, PlotPathRequestData
8
8
  from chia.rpc.rpc_client import RpcClient
9
9
  from chia.util.streamable import recurse_jsonify
10
10
 
@@ -6,10 +6,10 @@ from pathlib import Path
6
6
  from typing import Optional
7
7
 
8
8
  import aiofiles
9
+ from chia_rs import SubEpochSummary
9
10
  from chia_rs.sized_bytes import bytes32
10
11
  from chia_rs.sized_ints import uint32
11
12
 
12
- from chia.types.blockchain_format.sub_epoch_summary import SubEpochSummary
13
13
  from chia.util.db_wrapper import DBWrapper2
14
14
  from chia.util.files import write_file_async
15
15
  from chia.util.streamable import Streamable, streamable
@@ -56,7 +56,9 @@ class BlockHeightMap:
56
56
  __ses_filename: Path
57
57
 
58
58
  @classmethod
59
- async def create(cls, blockchain_dir: Path, db: DBWrapper2) -> BlockHeightMap:
59
+ async def create(
60
+ cls, blockchain_dir: Path, db: DBWrapper2, selected_network: Optional[str] = None
61
+ ) -> BlockHeightMap:
60
62
  if db.db_version != 2:
61
63
  raise RuntimeError(f"BlockHeightMap does not support database schema v{db.db_version}")
62
64
  self = BlockHeightMap()
@@ -66,8 +68,9 @@ class BlockHeightMap:
66
68
  self.__first_dirty = 0
67
69
  self.__height_to_hash = bytearray()
68
70
  self.__sub_epoch_summaries = {}
69
- self.__height_to_hash_filename = blockchain_dir / "height-to-hash"
70
- self.__ses_filename = blockchain_dir / "sub-epoch-summaries"
71
+ suffix = "" if (selected_network is None or selected_network == "mainnet") else f"-{selected_network}"
72
+ self.__height_to_hash_filename = blockchain_dir / f"height-to-hash{suffix}"
73
+ self.__ses_filename = blockchain_dir / f"sub-epoch-summaries{suffix}"
71
74
 
72
75
  async with self.db.reader_no_transaction() as conn:
73
76
  async with conn.execute("SELECT hash FROM current_peak WHERE key = 0") as cursor:
@@ -91,7 +94,6 @@ class BlockHeightMap:
91
94
  except Exception as e:
92
95
  # it's OK if this file doesn't exist, we can rebuild it
93
96
  log.info(f"Failed to load height-to-hash: {e}")
94
- pass
95
97
 
96
98
  try:
97
99
  async with aiofiles.open(self.__ses_filename, "rb") as f:
@@ -99,7 +101,6 @@ class BlockHeightMap:
99
101
  except Exception as e:
100
102
  # it's OK if this file doesn't exist, we can rebuild it
101
103
  log.info(f"Failed to load sub-epoch-summaries: {e}")
102
- pass
103
104
 
104
105
  peak: bytes32 = row[0]
105
106
  prev_hash: bytes32 = row[1]
@@ -7,15 +7,13 @@ from typing import Optional
7
7
 
8
8
  import typing_extensions
9
9
  import zstd
10
- from chia_rs import SubEpochChallengeSegment, SubEpochSegments
10
+ from chia_rs import BlockRecord, FullBlock, SubEpochChallengeSegment, SubEpochSegments
11
11
  from chia_rs.sized_bytes import bytes32
12
12
  from chia_rs.sized_ints import uint32
13
13
 
14
- from chia.consensus.block_record import BlockRecord
15
- from chia.types.full_block import FullBlock
14
+ from chia.full_node.full_block_utils import GeneratorBlockInfo, block_info_from_block, generator_from_block
16
15
  from chia.util.db_wrapper import DBWrapper2, execute_fetchone
17
16
  from chia.util.errors import Err
18
- from chia.util.full_block_utils import GeneratorBlockInfo, block_info_from_block, generator_from_block
19
17
  from chia.util.lru_cache import LRUCache
20
18
 
21
19
  log = logging.getLogger(__name__)
@@ -252,7 +250,7 @@ class BlockStore:
252
250
  row = await execute_fetchone(conn, formatted_str, (header_hash,))
253
251
  if row is None:
254
252
  return None
255
- block_bytes = zstd.decompress(row[0])
253
+ block_bytes = memoryview(zstd.decompress(row[0]))
256
254
 
257
255
  try:
258
256
  return block_info_from_block(block_bytes)
@@ -276,7 +274,7 @@ class BlockStore:
276
274
  row = await execute_fetchone(conn, formatted_str, (header_hash,))
277
275
  if row is None:
278
276
  return None
279
- block_bytes = zstd.decompress(row[0])
277
+ block_bytes = memoryview(zstd.decompress(row[0]))
280
278
 
281
279
  try:
282
280
  return generator_from_block(block_bytes)
@@ -299,7 +297,7 @@ class BlockStore:
299
297
  async with self.db_wrapper.reader_no_transaction() as conn:
300
298
  async with conn.execute(formatted_str, list(heights)) as cursor:
301
299
  async for row in cursor:
302
- block_bytes = zstd.decompress(row[0])
300
+ block_bytes = memoryview(zstd.decompress(row[0]))
303
301
 
304
302
  try:
305
303
  gen = generator_from_block(block_bytes)
@@ -1,10 +1,9 @@
1
1
  from __future__ import annotations
2
2
 
3
- from chia_rs import solution_generator, solution_generator_backrefs
3
+ from chia_rs import SpendBundle, solution_generator, solution_generator_backrefs
4
4
 
5
5
  from chia.types.blockchain_format.serialized_program import SerializedProgram
6
6
  from chia.types.generator_types import BlockGenerator
7
- from chia.types.spend_bundle import SpendBundle
8
7
 
9
8
 
10
9
  def simple_solution_generator(bundle: SpendBundle) -> BlockGenerator: