chia-blockchain 2.5.4rc2__py3-none-any.whl → 2.5.5rc2__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 +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 +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 +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.4rc2.dist-info → chia_blockchain-2.5.5rc2.dist-info}/METADATA +7 -7
  424. {chia_blockchain-2.5.4rc2.dist-info → chia_blockchain-2.5.5rc2.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.5rc2.dist-info}/LICENSE +0 -0
  452. {chia_blockchain-2.5.4rc2.dist-info → chia_blockchain-2.5.5rc2.dist-info}/WHEEL +0 -0
  453. {chia_blockchain-2.5.4rc2.dist-info → chia_blockchain-2.5.5rc2.dist-info}/entry_points.txt +0 -0
@@ -10,9 +10,11 @@ from chia_rs import (
10
10
  Foliage,
11
11
  FoliageBlockData,
12
12
  FoliageTransactionBlock,
13
+ FullBlock,
13
14
  G1Element,
14
15
  G2Element,
15
16
  PoolTarget,
17
+ ProofOfSpace,
16
18
  RewardChainBlock,
17
19
  TransactionsInfo,
18
20
  VDFInfo,
@@ -23,9 +25,7 @@ from chia_rs.sized_ints import uint8, uint32, uint64, uint128
23
25
 
24
26
  from chia.consensus.coinbase import create_farmer_coin, create_pool_coin
25
27
  from chia.consensus.default_constants import DEFAULT_CONSTANTS
26
- from chia.types.blockchain_format.proof_of_space import ProofOfSpace
27
28
  from chia.types.blockchain_format.serialized_program import SerializedProgram
28
- from chia.types.full_block import FullBlock
29
29
 
30
30
  # farmer puzzle hash
31
31
  ph = bytes32(b"a" * 32)
@@ -2,18 +2,19 @@ from __future__ import annotations
2
2
 
3
3
  import contextlib
4
4
  import os
5
- import pickle
5
+ import pickle # noqa: S403 # TODO: use explicit serialization instead of pickle
6
6
  from collections.abc import AsyncIterator
7
7
  from pathlib import Path
8
8
  from typing import Optional
9
9
 
10
- from chia_rs import ConsensusConstants
10
+ from chia_rs import ConsensusConstants, FullBlock
11
+ from chia_rs.sized_ints import uint64
11
12
 
12
13
  from chia.consensus.blockchain import Blockchain
14
+ from chia.full_node.block_height_map import BlockHeightMap
13
15
  from chia.full_node.block_store import BlockStore
14
16
  from chia.full_node.coin_store import CoinStore
15
17
  from chia.simulator.block_tools import BlockTools
16
- from chia.types.full_block import FullBlock
17
18
  from chia.util.db_wrapper import DBWrapper2, generate_in_memory_db_uri
18
19
  from chia.util.default_root import DEFAULT_ROOT_PATH
19
20
 
@@ -26,7 +27,9 @@ async def create_blockchain(
26
27
  async with DBWrapper2.managed(database=db_uri, uri=True, reader_count=1, db_version=db_version) as wrapper:
27
28
  coin_store = await CoinStore.create(wrapper)
28
29
  store = await BlockStore.create(wrapper)
29
- bc1 = await Blockchain.create(coin_store, store, constants, Path("."), 2, single_threaded=True, log_coins=True)
30
+ path = Path(".")
31
+ height_map = await BlockHeightMap.create(path, wrapper)
32
+ bc1 = await Blockchain.create(coin_store, store, height_map, constants, 3, single_threaded=True, log_coins=True)
30
33
  try:
31
34
  assert bc1.get_peak() is None
32
35
  yield bc1, wrapper
@@ -67,12 +70,14 @@ def persistent_blocks(
67
70
  print(f"File found at: {file_path}")
68
71
  try:
69
72
  bytes_list = file_path.read_bytes()
70
- block_bytes_list: list[bytes] = pickle.loads(bytes_list)
73
+ # TODO: use explicit serialization instead of pickle
74
+ block_bytes_list: list[bytes] = pickle.loads(bytes_list) # noqa: S301
71
75
  blocks: list[FullBlock] = []
72
76
  for block_bytes in block_bytes_list:
73
77
  blocks.append(FullBlock.from_bytes_unchecked(block_bytes))
74
78
  if len(blocks) == num_of_blocks + len(block_list_input):
75
79
  print(f"\n loaded {file_path} with {len(blocks)} blocks")
80
+
76
81
  return blocks
77
82
  except EOFError:
78
83
  print("\n error reading db file")
@@ -126,6 +131,7 @@ def new_test_db(
126
131
  normalized_to_identity_cc_ip=normalized_to_identity_cc_ip,
127
132
  dummy_block_references=dummy_block_references,
128
133
  include_transactions=include_transactions,
134
+ genesis_timestamp=uint64(1234567890),
129
135
  )
130
136
  block_bytes_list: list[bytes] = []
131
137
  for block in blocks:
@@ -3,14 +3,11 @@ from __future__ import annotations
3
3
  import logging
4
4
  from typing import TYPE_CHECKING, ClassVar, Optional, cast
5
5
 
6
- from chia_rs import SubEpochChallengeSegment, SubEpochSegments
6
+ from chia_rs import BlockRecord, HeaderBlock, SubEpochChallengeSegment, SubEpochSegments, SubEpochSummary
7
7
  from chia_rs.sized_bytes import bytes32
8
8
  from chia_rs.sized_ints import uint32
9
9
 
10
- from chia.consensus.block_record import BlockRecord
11
- from chia.types.blockchain_format.sub_epoch_summary import SubEpochSummary
12
10
  from chia.types.blockchain_format.vdf import VDFInfo
13
- from chia.types.header_block import HeaderBlock
14
11
 
15
12
 
16
13
  # implements BlockchainInterface
@@ -0,0 +1,29 @@
1
+ from __future__ import annotations
2
+
3
+ from chia.consensus.coin_store_protocol import CoinStoreProtocol
4
+ from chia.types.coin_record import CoinRecord
5
+ from chia.util.db_wrapper import DBWrapper2
6
+
7
+
8
+ async def add_coin_records_to_db(coin_store: CoinStoreProtocol, records: list[CoinRecord]) -> None:
9
+ if len(records) == 0:
10
+ return
11
+ db_wrapper = getattr(coin_store, "db_wrapper", None)
12
+ assert isinstance(db_wrapper, DBWrapper2), "CoinStore must use DBWrapper2"
13
+ async with db_wrapper.writer_maybe_transaction() as conn:
14
+ await conn.executemany(
15
+ "INSERT INTO coin_record VALUES(?, ?, ?, ?, ?, ?, ?, ?)",
16
+ (
17
+ (
18
+ record.coin.name(),
19
+ record.confirmed_block_index,
20
+ record.spent_block_index,
21
+ int(record.coinbase),
22
+ record.coin.puzzle_hash,
23
+ record.coin.parent_coin_info,
24
+ record.coin.amount.stream_to_bytes(),
25
+ record.timestamp,
26
+ )
27
+ for record in records
28
+ ),
29
+ )
@@ -1,21 +1,5 @@
1
1
  from __future__ import annotations
2
2
 
3
- from chia_rs.sized_ints import uint8, uint16, uint32, uint64, uint128
3
+ from chia.simulator.block_tools import test_constants
4
4
 
5
- from chia.consensus.default_constants import DEFAULT_CONSTANTS
6
-
7
- test_constants = DEFAULT_CONSTANTS.replace(
8
- MIN_PLOT_SIZE=uint8(18),
9
- MIN_BLOCKS_PER_CHALLENGE_BLOCK=uint8(12),
10
- DIFFICULTY_STARTING=uint64(2**9),
11
- DISCRIMINANT_SIZE_BITS=uint16(16),
12
- SUB_EPOCH_BLOCKS=uint32(170),
13
- WEIGHT_PROOF_THRESHOLD=uint8(2),
14
- WEIGHT_PROOF_RECENT_BLOCKS=uint32(380),
15
- DIFFICULTY_CONSTANT_FACTOR=uint128(33554432),
16
- NUM_SPS_SUB_SLOT=uint32(16), # Must be a power of 2
17
- MAX_SUB_SLOT_BLOCKS=uint32(50),
18
- EPOCH_BLOCKS=uint32(340),
19
- SUB_SLOT_ITERS_STARTING=uint64(2**10), # Must be a multiple of 64
20
- NUMBER_ZERO_BITS_PLOT_FILTER=uint8(1), # H(plot signature of the challenge) must start with these many zeroes
21
- )
5
+ __all__ = ["test_constants"]
@@ -12,24 +12,24 @@ from typing import Callable, Optional, cast
12
12
 
13
13
  import aiosqlite
14
14
  import zstd
15
+ from chia_rs import FullBlock
15
16
  from chia_rs.sized_bytes import bytes32
16
17
  from chia_rs.sized_ints import uint16
17
18
 
18
19
  from chia._tests.util.constants import test_constants as TEST_CONSTANTS
19
20
  from chia.cmds.init_funcs import chia_init
21
+ from chia.consensus.augmented_chain import AugmentedBlockchain
20
22
  from chia.consensus.block_body_validation import ForkInfo
21
23
  from chia.consensus.constants import replace_str_to_bytes
22
24
  from chia.consensus.default_constants import DEFAULT_CONSTANTS
23
25
  from chia.consensus.difficulty_adjustment import get_next_sub_slot_iters_and_difficulty
24
26
  from chia.full_node.full_node import FullNode
25
- from chia.server.outbound_message import Message, NodeType
27
+ from chia.protocols.outbound_message import Message, NodeType
26
28
  from chia.server.server import ChiaServer
27
29
  from chia.server.ws_connection import ConnectionCallback, WSChiaConnection
28
30
  from chia.simulator.block_tools import make_unfinished_block
29
- from chia.types.full_block import FullBlock
30
31
  from chia.types.peer_info import PeerInfo
31
32
  from chia.types.validation_state import ValidationState
32
- from chia.util.augmented_chain import AugmentedBlockchain
33
33
  from chia.util.config import load_config
34
34
 
35
35
 
@@ -1,15 +1,14 @@
1
1
  from __future__ import annotations
2
2
 
3
- from chia_rs import ConsensusConstants
3
+ from chia_rs import ConsensusConstants, FullBlock
4
4
  from chia_rs.sized_bytes import bytes32
5
5
  from chia_rs.sized_ints import uint32
6
6
 
7
7
  from chia._tests.util.get_name_puzzle_conditions import get_name_puzzle_conditions
8
8
  from chia.consensus.default_constants import DEFAULT_CONSTANTS
9
+ from chia.consensus.generator_tools import tx_removals_and_additions
9
10
  from chia.types.blockchain_format.coin import Coin
10
- from chia.types.full_block import FullBlock
11
11
  from chia.types.generator_types import BlockGenerator
12
- from chia.util.generator_tools import tx_removals_and_additions
13
12
 
14
13
 
15
14
  def run_and_get_removals_and_additions(
@@ -2,12 +2,11 @@ from __future__ import annotations
2
2
 
3
3
  from dataclasses import dataclass, field
4
4
 
5
- from chia_rs import AugSchemeMPL, G1Element, G2Element, PrivateKey
5
+ from chia_rs import AugSchemeMPL, CoinSpend, G1Element, G2Element, PrivateKey
6
6
 
7
7
  from chia._tests.core.make_block_generator import GROUP_ORDER, int_to_public_key
8
+ from chia.consensus.condition_tools import conditions_dict_for_solution, pkm_pairs_for_conditions_dict
8
9
  from chia.simulator.block_tools import test_constants
9
- from chia.types.coin_spend import CoinSpend
10
- from chia.util.condition_tools import conditions_dict_for_solution, pkm_pairs_for_conditions_dict
11
10
 
12
11
 
13
12
  @dataclass
chia/_tests/util/misc.py CHANGED
@@ -31,6 +31,7 @@ from aiohttp import web
31
31
  from chia_rs import Coin
32
32
  from chia_rs.sized_bytes import bytes32
33
33
  from chia_rs.sized_ints import uint16, uint32, uint64
34
+ from typing_extensions import Self
34
35
 
35
36
  import chia
36
37
  import chia._tests
@@ -38,9 +39,9 @@ from chia._tests import ether
38
39
  from chia._tests.core.data_layer.util import ChiaRoot
39
40
  from chia._tests.util.time_out_assert import DataTypeProtocol, caller_file_and_line
40
41
  from chia.full_node.mempool import Mempool
42
+ from chia.protocols.outbound_message import Message
41
43
  from chia.protocols.protocol_message_types import ProtocolMessageTypes
42
44
  from chia.server.api_protocol import ApiMetadata, ApiProtocol
43
- from chia.server.outbound_message import Message
44
45
  from chia.types.condition_opcodes import ConditionOpcode
45
46
  from chia.util.hash import std_hash
46
47
  from chia.util.network import WebServer
@@ -49,10 +50,10 @@ from chia.wallet.wallet_node import WalletNode
49
50
 
50
51
 
51
52
  class GcMode(enum.Enum):
52
- nothing = enum.auto
53
- precollect = enum.auto
54
- disable = enum.auto
55
- enable = enum.auto
53
+ nothing = enum.auto()
54
+ precollect = enum.auto()
55
+ disable = enum.auto()
56
+ enable = enum.auto()
56
57
 
57
58
 
58
59
  @contextlib.contextmanager
@@ -477,24 +478,25 @@ def create_logger(file: TextIO = sys.stdout) -> logging.Logger:
477
478
 
478
479
 
479
480
  def invariant_check_mempool(mempool: Mempool) -> None:
480
- with mempool._db_conn as conn:
481
- cursor = conn.execute("SELECT COALESCE(SUM(cost), 0), COALESCE(SUM(fee), 0) FROM tx")
482
- val = cursor.fetchone()
483
- assert (mempool._total_cost, mempool._total_fee) == val
484
-
485
- with mempool._db_conn as conn:
486
- cursor = conn.execute("SELECT coin_id, tx FROM spends")
487
- for coin_id, item_id in cursor.fetchall():
488
- item = mempool._items.get(item_id)
489
- assert item is not None
490
- # item is expected to contain a spend of coin_id, but it might be a
491
- # fast-forward spend, in which case the dictionary won't help us,
492
- # but we'll have to do a linear search
493
- if coin_id in item.bundle_coin_spends:
494
- assert item.bundle_coin_spends[coin_id].coin_spend.coin.name() == coin_id
495
- continue
496
-
497
- assert any(map(lambda i: i.latest_singleton_coin == coin_id, item.bundle_coin_spends.values()))
481
+ cursor = mempool._db_conn.execute("SELECT COALESCE(SUM(cost), 0), COALESCE(SUM(fee), 0) FROM tx")
482
+ val = cursor.fetchone()
483
+ assert (mempool._total_cost, mempool._total_fee) == val
484
+
485
+ cursor = mempool._db_conn.execute("SELECT coin_id, tx FROM spends")
486
+ for coin_id, item_id in cursor.fetchall():
487
+ item = mempool._items.get(item_id)
488
+ assert item is not None
489
+ # item is expected to contain a spend of coin_id, but it might be a
490
+ # fast-forward spend, in which case the dictionary won't help us,
491
+ # but we'll have to do a linear search
492
+ if coin_id in item.bundle_coin_spends:
493
+ assert item.bundle_coin_spends[coin_id].coin_spend.coin.name() == coin_id
494
+ continue
495
+
496
+ assert any(
497
+ i.latest_singleton_lineage is not None and i.latest_singleton_lineage.coin_id == coin_id
498
+ for i in item.bundle_coin_spends.values()
499
+ )
498
500
 
499
501
 
500
502
  async def wallet_height_at_least(wallet_node: WalletNode, h: uint32) -> bool:
@@ -612,37 +614,37 @@ T_ComparableEnum = TypeVar("T_ComparableEnum", bound="ComparableEnum")
612
614
 
613
615
 
614
616
  class ComparableEnum(Enum):
615
- def __lt__(self: T_ComparableEnum, other: T_ComparableEnum) -> object:
617
+ def __lt__(self, other: Self) -> object:
616
618
  if self.__class__ is not other.__class__:
617
619
  return NotImplemented
618
620
 
619
621
  return self.value.__lt__(other.value)
620
622
 
621
- def __le__(self: T_ComparableEnum, other: T_ComparableEnum) -> object:
623
+ def __le__(self, other: Self) -> object:
622
624
  if self.__class__ is not other.__class__:
623
625
  return NotImplemented
624
626
 
625
627
  return self.value.__le__(other.value)
626
628
 
627
- def __eq__(self: T_ComparableEnum, other: object) -> bool:
629
+ def __eq__(self, other: object) -> bool:
628
630
  if self.__class__ is not other.__class__:
629
631
  return False
630
632
 
631
- return cast(bool, self.value.__eq__(cast(T_ComparableEnum, other).value))
633
+ return cast(bool, self.value.__eq__(cast(Self, other).value))
632
634
 
633
- def __ne__(self: T_ComparableEnum, other: object) -> bool:
635
+ def __ne__(self, other: object) -> bool:
634
636
  if self.__class__ is not other.__class__:
635
637
  return True
636
638
 
637
- return cast(bool, self.value.__ne__(cast(T_ComparableEnum, other).value))
639
+ return cast(bool, self.value.__ne__(cast(Self, other).value))
638
640
 
639
- def __gt__(self: T_ComparableEnum, other: T_ComparableEnum) -> object:
641
+ def __gt__(self, other: Self) -> object:
640
642
  if self.__class__ is not other.__class__:
641
643
  return NotImplemented
642
644
 
643
645
  return self.value.__gt__(other.value)
644
646
 
645
- def __ge__(self: T_ComparableEnum, other: T_ComparableEnum) -> object:
647
+ def __ge__(self, other: Self) -> object:
646
648
  if self.__class__ is not other.__class__:
647
649
  return NotImplemented
648
650
 
@@ -1,18 +1,32 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  from chia_rs import (
4
+ ChallengeChainSubSlot,
5
+ CoinSpend,
6
+ CoinState,
7
+ EndOfSubSlotBundle,
4
8
  Foliage,
5
9
  FoliageBlockData,
6
10
  FoliageTransactionBlock,
11
+ FullBlock,
7
12
  G1Element,
8
13
  G2Element,
14
+ HeaderBlock,
15
+ InfusedChallengeChainSubSlot,
9
16
  PoolTarget,
17
+ ProofOfSpace,
18
+ RespondToPhUpdates,
10
19
  RewardChainBlock,
11
20
  RewardChainBlockUnfinished,
21
+ RewardChainSubSlot,
22
+ SpendBundle,
12
23
  SubEpochChallengeSegment,
13
24
  SubEpochData,
25
+ SubEpochSummary,
14
26
  SubSlotData,
27
+ SubSlotProofs,
15
28
  TransactionsInfo,
29
+ UnfinishedBlock,
16
30
  )
17
31
  from chia_rs.sized_bytes import bytes32
18
32
  from chia_rs.sized_ints import int16, uint8, uint16, uint32, uint64, uint128
@@ -29,23 +43,9 @@ from chia.protocols import (
29
43
  from chia.protocols.shared_protocol import Error
30
44
  from chia.types.blockchain_format.classgroup import ClassgroupElement
31
45
  from chia.types.blockchain_format.coin import Coin
32
- from chia.types.blockchain_format.proof_of_space import ProofOfSpace
33
46
  from chia.types.blockchain_format.serialized_program import SerializedProgram
34
- from chia.types.blockchain_format.slots import (
35
- ChallengeChainSubSlot,
36
- InfusedChallengeChainSubSlot,
37
- RewardChainSubSlot,
38
- SubSlotProofs,
39
- )
40
- from chia.types.blockchain_format.sub_epoch_summary import SubEpochSummary
41
47
  from chia.types.blockchain_format.vdf import VDFInfo, VDFProof
42
- from chia.types.coin_spend import CoinSpend
43
- from chia.types.end_of_slot_bundle import EndOfSubSlotBundle
44
- from chia.types.full_block import FullBlock
45
- from chia.types.header_block import HeaderBlock
46
48
  from chia.types.peer_info import TimestampedPeerInfo
47
- from chia.types.spend_bundle import SpendBundle
48
- from chia.types.unfinished_block import UnfinishedBlock
49
49
  from chia.types.weight_proof import RecentChainData, WeightProof
50
50
  from chia.util.errors import Err
51
51
 
@@ -63,6 +63,7 @@ new_signage_point = farmer_protocol.NewSignagePoint(
63
63
  uint64(8265724497259558930),
64
64
  uint8(194),
65
65
  uint32(1),
66
+ uint32(0),
66
67
  )
67
68
 
68
69
  proof_of_space = ProofOfSpace(
@@ -641,7 +642,7 @@ respond_header_blocks = wallet_protocol.RespondHeaderBlocks(
641
642
  [header_block],
642
643
  )
643
644
 
644
- coin_state = wallet_protocol.CoinState(
645
+ coin_state = CoinState(
645
646
  coin_1,
646
647
  uint32(2287030048),
647
648
  uint32(3361305811),
@@ -652,7 +653,7 @@ register_for_ph_updates = wallet_protocol.RegisterForPhUpdates(
652
653
  uint32(874269130),
653
654
  )
654
655
 
655
- respond_to_ph_updates = wallet_protocol.RespondToPhUpdates(
656
+ respond_to_ph_updates = RespondToPhUpdates(
656
657
  [bytes32(bytes.fromhex("1be3bdc54b84901554e4e843966cfa3be3380054c968bebc41cc6be4aa65322f"))],
657
658
  uint32(3664709982),
658
659
  [coin_state],
@@ -794,7 +795,8 @@ new_signage_point_harvester = harvester_protocol.NewSignagePointHarvester(
794
795
  uint8(148),
795
796
  bytes32(bytes.fromhex("b78c9fca155e9742df835cbe84bb7e518bee70d78b6be6e39996c0a02e0cfe4c")),
796
797
  [pool_difficulty],
797
- uint8(9),
798
+ uint32(0),
799
+ uint32(0),
798
800
  )
799
801
 
800
802
  new_proof_of_space = harvester_protocol.NewProofOfSpace(
@@ -12,6 +12,7 @@ new_signage_point_json: dict[str, Any] = {
12
12
  "sub_slot_iters": 8265724497259558930,
13
13
  "signage_point_index": 194,
14
14
  "peak_height": 1,
15
+ "last_tx_height": 0,
15
16
  "sp_source_data": None,
16
17
  }
17
18
 
@@ -2159,7 +2160,8 @@ new_signage_point_harvester_json: dict[str, Any] = {
2159
2160
  "pool_contract_puzzle_hash": "0xc9423123ea65e6923e973b95531b4874570dae942cb757a2daec4a6971753886",
2160
2161
  }
2161
2162
  ],
2162
- "filter_prefix_bits": 9,
2163
+ "peak_height": 0,
2164
+ "last_tx_height": 0,
2163
2165
  }
2164
2166
 
2165
2167
  new_proof_of_space_json: dict[str, Any] = {
@@ -10,7 +10,7 @@ from chia_rs import Coin, ConsensusConstants
10
10
  from chia_rs.sized_bytes import bytes32
11
11
  from chia_rs.sized_ints import uint32, uint64
12
12
 
13
- from chia.types.blockchain_format.program import Program
13
+ from chia.types.blockchain_format.program import Program, run_with_cost
14
14
  from chia.types.blockchain_format.serialized_program import SerializedProgram
15
15
  from chia.types.condition_opcodes import ConditionOpcode
16
16
  from chia.types.condition_with_args import ConditionWithArgs
@@ -60,7 +60,7 @@ def npc_to_dict(npc: NPC) -> dict[str, Any]:
60
60
 
61
61
  def run_generator(block_generator: BlockGenerator, constants: ConsensusConstants, max_cost: int) -> list[CAT]:
62
62
  block_args = block_generator.generator_refs
63
- _cost, block_result = block_generator.program.run_with_cost(max_cost, [DESERIALIZE_MOD, block_args])
63
+ _cost, block_result = run_with_cost(block_generator.program, max_cost, [DESERIALIZE_MOD, block_args])
64
64
 
65
65
  coin_spends = block_result.first()
66
66
 
@@ -22,7 +22,7 @@ from chia.full_node.full_node_api import FullNodeAPI
22
22
  from chia.harvester.harvester import Harvester
23
23
  from chia.introducer.introducer_api import IntroducerAPI
24
24
  from chia.protocols.shared_protocol import Capability
25
- from chia.rpc.wallet_rpc_client import WalletRpcClient
25
+ from chia.server.aliases import FarmerService, FullNodeService, HarvesterService, TimelordService, WalletService
26
26
  from chia.server.server import ChiaServer
27
27
  from chia.simulator.block_tools import BlockTools, create_block_tools_async
28
28
  from chia.simulator.full_node_simulator import FullNodeSimulator
@@ -40,12 +40,12 @@ from chia.simulator.setup_services import (
40
40
  )
41
41
  from chia.simulator.socket import find_available_listen_port
42
42
  from chia.simulator.start_simulator import SimulatorFullNodeService
43
- from chia.types.aliases import FarmerService, FullNodeService, HarvesterService, TimelordService, WalletService
44
43
  from chia.types.peer_info import UnresolvedPeerInfo
45
44
  from chia.util.hash import std_hash
46
45
  from chia.util.keychain import Keychain
47
46
  from chia.util.timing import adjusted_timeout, backoff_times
48
47
  from chia.wallet.wallet_node import WalletNode
48
+ from chia.wallet.wallet_rpc_client import WalletRpcClient
49
49
 
50
50
  OldSimulatorsAndWallets = tuple[list[FullNodeSimulator], list[tuple[WalletNode, ChiaServer]], BlockTools]
51
51
  SimulatorsAndWalletsServices = tuple[list[SimulatorFullNodeService], list[WalletService], BlockTools]
@@ -250,10 +250,10 @@ async def setup_simulators_and_wallets_inner(
250
250
  async with AsyncExitStack() as async_exit_stack:
251
251
  bt_tools: list[BlockTools] = [
252
252
  await create_block_tools_async(consensus_constants, keychain=keychain1, config_overrides=config_overrides)
253
- for _ in range(0, simulator_count)
253
+ for _ in range(simulator_count)
254
254
  ]
255
255
  if wallet_count > simulator_count:
256
- for _ in range(0, wallet_count - simulator_count):
256
+ for _ in range(wallet_count - simulator_count):
257
257
  bt_tools.append(
258
258
  await create_block_tools_async(
259
259
  consensus_constants, keychain=keychain2, config_overrides=config_overrides
@@ -273,7 +273,7 @@ async def setup_simulators_and_wallets_inner(
273
273
  disable_capabilities=disable_capabilities,
274
274
  )
275
275
  )
276
- for index in range(0, simulator_count)
276
+ for index in range(simulator_count)
277
277
  ]
278
278
 
279
279
  wallets: list[WalletService] = [
@@ -289,7 +289,7 @@ async def setup_simulators_and_wallets_inner(
289
289
  initial_num_public_keys=initial_num_public_keys,
290
290
  )
291
291
  )
292
- for index in range(0, wallet_count)
292
+ for index in range(wallet_count)
293
293
  ]
294
294
 
295
295
  yield bt_tools, simulators, wallets
@@ -329,7 +329,7 @@ async def setup_farmer_multi_harvester(
329
329
  start_service=start_services,
330
330
  )
331
331
  )
332
- for i in range(0, harvester_count)
332
+ for i in range(harvester_count)
333
333
  ]
334
334
 
335
335
  yield harvester_services, farmer_service, block_tools