chia-blockchain 2.5.2rc2__py3-none-any.whl → 2.5.3__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 (640) hide show
  1. chia/__init__.py +7 -0
  2. chia/_tests/blockchain/blockchain_test_utils.py +1 -1
  3. chia/_tests/blockchain/test_augmented_chain.py +54 -5
  4. chia/_tests/blockchain/test_blockchain.py +5 -12
  5. chia/_tests/blockchain/test_blockchain_transactions.py +3 -5
  6. chia/_tests/blockchain/test_get_block_generator.py +2 -2
  7. chia/_tests/blockchain/test_lookup_fork_chain.py +2 -2
  8. chia/_tests/clvm/benchmark_costs.py +2 -1
  9. chia/_tests/clvm/coin_store.py +4 -3
  10. chia/_tests/clvm/test_chialisp_deserialization.py +2 -2
  11. chia/_tests/clvm/test_curry_and_treehash.py +1 -1
  12. chia/_tests/clvm/test_puzzle_compression.py +2 -2
  13. chia/_tests/clvm/test_puzzles.py +2 -2
  14. chia/_tests/clvm/test_singletons.py +2 -2
  15. chia/_tests/clvm/test_spend_sim.py +1 -1
  16. chia/_tests/cmds/cmd_test_utils.py +2 -2
  17. chia/_tests/cmds/test_click_types.py +2 -2
  18. chia/_tests/cmds/test_cmd_framework.py +6 -6
  19. chia/_tests/cmds/test_show.py +4 -3
  20. chia/_tests/cmds/test_tx_config_args.py +1 -1
  21. chia/_tests/cmds/testing_classes.py +2 -2
  22. chia/_tests/cmds/wallet/test_consts.py +2 -2
  23. chia/_tests/cmds/wallet/test_did.py +2 -2
  24. chia/_tests/cmds/wallet/test_nft.py +2 -2
  25. chia/_tests/cmds/wallet/test_notifications.py +3 -2
  26. chia/_tests/cmds/wallet/test_vcs.py +2 -2
  27. chia/_tests/cmds/wallet/test_wallet.py +4 -8
  28. chia/_tests/conftest.py +4 -3
  29. chia/_tests/connection_utils.py +2 -2
  30. chia/_tests/core/cmds/test_keys.py +1 -2
  31. chia/_tests/core/cmds/test_wallet.py +2 -2
  32. chia/_tests/core/consensus/test_block_creation.py +2 -2
  33. chia/_tests/core/consensus/test_pot_iterations.py +1 -1
  34. chia/_tests/core/custom_types/test_coin.py +2 -2
  35. chia/_tests/core/custom_types/test_proof_of_space.py +2 -2
  36. chia/_tests/core/custom_types/test_spend_bundle.py +2 -2
  37. chia/_tests/core/data_layer/conftest.py +1 -1
  38. chia/_tests/core/data_layer/test_data_layer.py +1 -1
  39. chia/_tests/core/data_layer/test_data_layer_util.py +1 -1
  40. chia/_tests/core/data_layer/test_data_rpc.py +2 -2
  41. chia/_tests/core/data_layer/test_data_store.py +1 -1
  42. chia/_tests/core/data_layer/test_data_store_schema.py +1 -1
  43. chia/_tests/core/data_layer/util.py +2 -1
  44. chia/_tests/core/farmer/test_farmer_api.py +1 -1
  45. chia/_tests/core/full_node/full_sync/test_full_sync.py +1 -7
  46. chia/_tests/core/full_node/ram_db.py +2 -1
  47. chia/_tests/core/full_node/stores/test_block_store.py +2 -2
  48. chia/_tests/core/full_node/stores/test_coin_store.py +2 -2
  49. chia/_tests/core/full_node/stores/test_full_node_store.py +3 -3
  50. chia/_tests/core/full_node/stores/test_hint_store.py +2 -2
  51. chia/_tests/core/full_node/stores/test_sync_store.py +1 -1
  52. chia/_tests/core/full_node/test_address_manager.py +1 -1
  53. chia/_tests/core/full_node/test_block_height_map.py +2 -2
  54. chia/_tests/core/full_node/test_conditions.py +1 -1
  55. chia/_tests/core/full_node/test_full_node.py +346 -164
  56. chia/_tests/core/full_node/test_generator_tools.py +3 -2
  57. chia/_tests/core/full_node/test_hint_management.py +2 -2
  58. chia/_tests/core/full_node/test_performance.py +2 -15
  59. chia/_tests/core/full_node/test_subscriptions.py +1 -1
  60. chia/_tests/core/full_node/test_transactions.py +186 -185
  61. chia/_tests/core/full_node/test_tx_processing_queue.py +1 -1
  62. chia/_tests/core/make_block_generator.py +2 -2
  63. chia/_tests/core/mempool/test_mempool.py +165 -22
  64. chia/_tests/core/mempool/test_mempool_fee_estimator.py +1 -1
  65. chia/_tests/core/mempool/test_mempool_fee_protocol.py +1 -1
  66. chia/_tests/core/mempool/test_mempool_manager.py +476 -66
  67. chia/_tests/core/mempool/test_mempool_performance.py +2 -2
  68. chia/_tests/core/mempool/test_singleton_fast_forward.py +19 -25
  69. chia/_tests/core/node_height.py +2 -1
  70. chia/_tests/core/server/test_capabilities.py +1 -1
  71. chia/_tests/core/server/test_dos.py +36 -28
  72. chia/_tests/core/server/test_loop.py +3 -3
  73. chia/_tests/core/server/test_rate_limits.py +1 -1
  74. chia/_tests/core/server/test_server.py +2 -2
  75. chia/_tests/core/services/test_services.py +1 -1
  76. chia/_tests/core/ssl/test_ssl.py +1 -1
  77. chia/_tests/core/test_coins.py +2 -1
  78. chia/_tests/core/test_cost_calculation.py +2 -2
  79. chia/_tests/core/test_crawler.py +2 -2
  80. chia/_tests/core/test_db_conversion.py +2 -2
  81. chia/_tests/core/test_db_validation.py +26 -13
  82. chia/_tests/core/test_farmer_harvester_rpc.py +2 -2
  83. chia/_tests/core/test_full_node_rpc.py +2 -2
  84. chia/_tests/core/test_merkle_set.py +2 -2
  85. chia/_tests/core/test_program.py +2 -2
  86. chia/_tests/core/test_rpc_util.py +1 -1
  87. chia/_tests/core/test_seeder.py +1 -1
  88. chia/_tests/core/util/test_block_cache.py +3 -3
  89. chia/_tests/core/util/test_jsonify.py +3 -2
  90. chia/_tests/core/util/test_keychain.py +3 -3
  91. chia/_tests/core/util/test_streamable.py +3 -4
  92. chia/_tests/environments/wallet.py +3 -2
  93. chia/_tests/farmer_harvester/test_farmer.py +3 -4
  94. chia/_tests/farmer_harvester/test_farmer_harvester.py +2 -2
  95. chia/_tests/farmer_harvester/test_filter_prefix_bits.py +2 -2
  96. chia/_tests/farmer_harvester/test_third_party_harvesters.py +3 -4
  97. chia/_tests/fee_estimation/test_fee_estimation_integration.py +1 -1
  98. chia/_tests/fee_estimation/test_fee_estimation_rpc.py +2 -2
  99. chia/_tests/fee_estimation/test_fee_estimation_unit_tests.py +1 -1
  100. chia/_tests/fee_estimation/test_mempoolitem_height_added.py +3 -4
  101. chia/_tests/generator/test_compression.py +20 -10
  102. chia/_tests/generator/test_rom.py +7 -9
  103. chia/_tests/plot_sync/test_delta.py +2 -2
  104. chia/_tests/plot_sync/test_plot_sync.py +2 -2
  105. chia/_tests/plot_sync/test_receiver.py +2 -2
  106. chia/_tests/plot_sync/test_sender.py +2 -2
  107. chia/_tests/plot_sync/test_sync_simulated.py +2 -2
  108. chia/_tests/plot_sync/util.py +3 -2
  109. chia/_tests/plotting/test_plot_manager.py +1 -1
  110. chia/_tests/pools/test_pool_cli_parsing.py +3 -2
  111. chia/_tests/pools/test_pool_cmdline.py +2 -2
  112. chia/_tests/pools/test_pool_puzzles_lifecycle.py +3 -3
  113. chia/_tests/pools/test_pool_rpc.py +4 -5
  114. chia/_tests/pools/test_pool_wallet.py +1 -1
  115. chia/_tests/pools/test_wallet_pool_store.py +2 -2
  116. chia/_tests/rpc/test_rpc_client.py +1 -1
  117. chia/_tests/rpc/test_rpc_server.py +1 -1
  118. chia/_tests/simulation/test_simulation.py +36 -8
  119. chia/_tests/simulation/test_simulator.py +5 -5
  120. chia/_tests/simulation/test_start_simulator.py +2 -2
  121. chia/_tests/timelord/test_new_peak.py +2 -2
  122. chia/_tests/tools/test_run_block.py +3 -2
  123. chia/_tests/util/benchmark_cost.py +2 -2
  124. chia/_tests/util/benchmarks.py +17 -6
  125. chia/_tests/util/blockchain.py +2 -1
  126. chia/_tests/util/blockchain_mock.py +9 -5
  127. chia/_tests/util/build_network_protocol_files.py +2 -1
  128. chia/_tests/util/constants.py +2 -1
  129. chia/_tests/util/full_sync.py +6 -3
  130. chia/_tests/util/gen_ssl_certs.py +2 -2
  131. chia/_tests/util/generator_tools_testing.py +4 -3
  132. chia/_tests/util/get_name_puzzle_conditions.py +2 -2
  133. chia/_tests/util/misc.py +16 -2
  134. chia/_tests/util/network_protocol_data.py +17 -7
  135. chia/_tests/util/run_block.py +6 -8
  136. chia/_tests/util/setup_nodes.py +4 -3
  137. chia/_tests/util/spend_sim.py +9 -5
  138. chia/_tests/util/test_condition_tools.py +2 -2
  139. chia/_tests/util/test_config.py +2 -1
  140. chia/_tests/util/test_errors.py +2 -1
  141. chia/_tests/util/test_full_block_utils.py +17 -7
  142. chia/_tests/util/test_misc.py +1 -1
  143. chia/_tests/util/test_network_protocol_test.py +24 -24
  144. chia/_tests/util/test_replace_str_to_bytes.py +2 -2
  145. chia/_tests/util/test_trusted_peer.py +1 -1
  146. chia/_tests/util/time_out_assert.py +20 -7
  147. chia/_tests/wallet/cat_wallet/test_cat_lifecycle.py +1 -1
  148. chia/_tests/wallet/cat_wallet/test_cat_outer_puzzle.py +2 -2
  149. chia/_tests/wallet/cat_wallet/test_cat_wallet.py +5 -6
  150. chia/_tests/wallet/cat_wallet/test_offer_lifecycle.py +17 -15
  151. chia/_tests/wallet/cat_wallet/test_trades.py +2 -2
  152. chia/_tests/wallet/clawback/test_clawback_lifecycle.py +2 -2
  153. chia/_tests/wallet/clawback/test_clawback_metadata.py +2 -2
  154. chia/_tests/wallet/conftest.py +3 -3
  155. chia/_tests/wallet/db_wallet/test_db_graftroot.py +3 -5
  156. chia/_tests/wallet/db_wallet/test_dl_offers.py +2 -2
  157. chia/_tests/wallet/db_wallet/test_dl_wallet.py +433 -384
  158. chia/_tests/wallet/did_wallet/test_did.py +3 -3
  159. chia/_tests/wallet/nft_wallet/test_nft_1_offers.py +2 -2
  160. chia/_tests/wallet/nft_wallet/test_nft_bulk_mint.py +2 -2
  161. chia/_tests/wallet/nft_wallet/test_nft_lifecycle.py +3 -4
  162. chia/_tests/wallet/nft_wallet/test_nft_offers.py +1293 -703
  163. chia/_tests/wallet/nft_wallet/test_nft_puzzles.py +28 -30
  164. chia/_tests/wallet/nft_wallet/test_nft_wallet.py +2 -2
  165. chia/_tests/wallet/nft_wallet/test_ownership_outer_puzzle.py +2 -2
  166. chia/_tests/wallet/rpc/config.py +1 -1
  167. chia/_tests/wallet/rpc/test_dl_wallet_rpc.py +2 -2
  168. chia/_tests/wallet/rpc/test_wallet_rpc.py +20 -77
  169. chia/_tests/wallet/simple_sync/test_simple_sync_protocol.py +9 -7
  170. chia/_tests/wallet/sync/test_wallet_sync.py +79 -31
  171. chia/_tests/wallet/test_clvm_streamable.py +2 -2
  172. chia/_tests/wallet/test_coin_management.py +7 -7
  173. chia/_tests/wallet/test_coin_selection.py +20 -2
  174. chia/_tests/wallet/test_conditions.py +2 -2
  175. chia/_tests/wallet/test_debug_spend_bundle.py +2 -2
  176. chia/_tests/wallet/test_new_wallet_protocol.py +2 -2
  177. chia/_tests/wallet/test_nft_store.py +2 -2
  178. chia/_tests/wallet/test_notifications.py +2 -2
  179. chia/_tests/wallet/test_puzzle_store.py +2 -2
  180. chia/_tests/wallet/test_sign_coin_spends.py +2 -2
  181. chia/_tests/wallet/test_signer_protocol.py +3 -3
  182. chia/_tests/wallet/test_singleton.py +3 -11
  183. chia/_tests/wallet/test_singleton_lifecycle_fast.py +12 -13
  184. chia/_tests/wallet/test_singleton_store.py +2 -4
  185. chia/_tests/wallet/test_transaction_store.py +2 -2
  186. chia/_tests/wallet/test_util.py +2 -2
  187. chia/_tests/wallet/test_wallet.py +53 -49
  188. chia/_tests/wallet/test_wallet_action_scope.py +24 -6
  189. chia/_tests/wallet/test_wallet_blockchain.py +1 -1
  190. chia/_tests/wallet/test_wallet_coin_store.py +2 -2
  191. chia/_tests/wallet/test_wallet_interested_store.py +2 -2
  192. chia/_tests/wallet/test_wallet_node.py +3 -3
  193. chia/_tests/wallet/test_wallet_retry.py +3 -3
  194. chia/_tests/wallet/test_wallet_state_manager.py +8 -8
  195. chia/_tests/wallet/test_wallet_test_framework.py +1 -1
  196. chia/_tests/wallet/test_wallet_trade_store.py +2 -2
  197. chia/_tests/wallet/test_wallet_utils.py +2 -2
  198. chia/_tests/wallet/vc_wallet/test_cr_outer_puzzle.py +3 -2
  199. chia/_tests/wallet/vc_wallet/test_vc_lifecycle.py +15 -15
  200. chia/_tests/wallet/vc_wallet/test_vc_wallet.py +5 -3
  201. chia/_tests/wallet/wallet_block_tools.py +15 -7
  202. chia/_tests/weight_proof/test_weight_proof.py +3 -3
  203. chia/cmds/chia.py +0 -2
  204. chia/cmds/cmd_classes.py +3 -3
  205. chia/cmds/cmd_helpers.py +4 -4
  206. chia/cmds/cmds_util.py +2 -2
  207. chia/cmds/coin_funcs.py +3 -2
  208. chia/cmds/coins.py +1 -1
  209. chia/cmds/data.py +2 -2
  210. chia/cmds/data_funcs.py +3 -2
  211. chia/cmds/db_upgrade_func.py +2 -2
  212. chia/cmds/db_validate_func.py +15 -8
  213. chia/cmds/farm.py +2 -4
  214. chia/cmds/keys.py +0 -2
  215. chia/cmds/keys_funcs.py +1 -1
  216. chia/cmds/netspace_funcs.py +2 -1
  217. chia/cmds/param_types.py +2 -2
  218. chia/cmds/plotnft.py +2 -2
  219. chia/cmds/plotnft_funcs.py +2 -2
  220. chia/cmds/rpc.py +1 -1
  221. chia/cmds/show.py +1 -2
  222. chia/cmds/show_funcs.py +6 -3
  223. chia/cmds/signer.py +1 -2
  224. chia/cmds/sim.py +1 -2
  225. chia/cmds/sim_funcs.py +2 -2
  226. chia/cmds/wallet.py +2 -2
  227. chia/cmds/wallet_funcs.py +4 -11
  228. chia/consensus/block_body_validation.py +3 -4
  229. chia/consensus/block_creation.py +10 -6
  230. chia/consensus/block_header_validation.py +3 -4
  231. chia/consensus/block_record.py +2 -3
  232. chia/consensus/block_rewards.py +1 -1
  233. chia/consensus/blockchain.py +20 -17
  234. chia/consensus/blockchain_interface.py +5 -4
  235. chia/consensus/coinbase.py +2 -2
  236. chia/consensus/constants.py +1 -1
  237. chia/consensus/cost_calculator.py +2 -1
  238. chia/consensus/default_constants.py +4 -3
  239. chia/consensus/deficit.py +3 -2
  240. chia/consensus/difficulty_adjustment.py +8 -9
  241. chia/consensus/find_fork_point.py +4 -3
  242. chia/consensus/full_block_to_block_record.py +4 -3
  243. chia/consensus/get_block_challenge.py +4 -3
  244. chia/consensus/get_block_generator.py +3 -2
  245. chia/consensus/make_sub_epoch_summary.py +3 -2
  246. chia/consensus/multiprocess_validation.py +9 -4
  247. chia/consensus/pos_quality.py +1 -1
  248. chia/consensus/pot_iterations.py +4 -3
  249. chia/consensus/vdf_info_computation.py +4 -3
  250. chia/daemon/client.py +1 -1
  251. chia/daemon/keychain_server.py +1 -1
  252. chia/daemon/server.py +1 -1
  253. chia/daemon/windows_signal.py +1 -1
  254. chia/data_layer/data_layer.py +4 -3
  255. chia/data_layer/data_layer_errors.py +1 -1
  256. chia/data_layer/data_layer_util.py +2 -2
  257. chia/data_layer/data_layer_wallet.py +47 -69
  258. chia/data_layer/data_store.py +1 -1
  259. chia/data_layer/dl_wallet_store.py +5 -6
  260. chia/data_layer/download_data.py +1 -1
  261. chia/data_layer/s3_plugin_service.py +4 -4
  262. chia/data_layer/singleton_record.py +23 -0
  263. chia/data_layer/util/benchmark.py +2 -1
  264. chia/farmer/farmer.py +4 -6
  265. chia/farmer/farmer_api.py +4 -6
  266. chia/full_node/bitcoin_fee_estimator.py +2 -1
  267. chia/full_node/block_height_map.py +2 -2
  268. chia/full_node/block_store.py +8 -9
  269. chia/{util → full_node}/check_fork_next_block.py +2 -1
  270. chia/full_node/coin_store.py +10 -10
  271. chia/full_node/fee_estimate.py +2 -1
  272. chia/full_node/fee_estimation.py +2 -1
  273. chia/full_node/fee_estimator.py +2 -1
  274. chia/full_node/fee_estimator_interface.py +1 -1
  275. chia/full_node/fee_history.py +2 -1
  276. chia/full_node/fee_tracker.py +2 -1
  277. chia/full_node/full_node.py +15 -13
  278. chia/full_node/full_node_api.py +12 -32
  279. chia/full_node/full_node_store.py +4 -3
  280. chia/full_node/hint_management.py +2 -1
  281. chia/full_node/hint_store.py +3 -3
  282. chia/full_node/mempool.py +80 -12
  283. chia/full_node/mempool_check_conditions.py +6 -7
  284. chia/full_node/mempool_manager.py +168 -21
  285. chia/full_node/pending_tx_cache.py +2 -2
  286. chia/full_node/subscriptions.py +2 -2
  287. chia/full_node/sync_store.py +2 -3
  288. chia/full_node/tx_processing_queue.py +2 -1
  289. chia/full_node/weight_proof.py +5 -8
  290. chia/harvester/harvester.py +5 -3
  291. chia/harvester/harvester_api.py +2 -2
  292. chia/introducer/introducer.py +30 -2
  293. chia/introducer/introducer_api.py +9 -1
  294. chia/legacy/keyring.py +1 -2
  295. chia/plot_sync/exceptions.py +2 -1
  296. chia/plot_sync/receiver.py +2 -2
  297. chia/plot_sync/sender.py +1 -1
  298. chia/plotting/cache.py +2 -2
  299. chia/plotting/check_plots.py +4 -2
  300. chia/plotting/create_plots.py +1 -1
  301. chia/plotting/manager.py +3 -3
  302. chia/plotting/util.py +2 -2
  303. chia/pools/pool_config.py +1 -1
  304. chia/pools/pool_puzzles.py +23 -17
  305. chia/pools/pool_wallet.py +22 -9
  306. chia/pools/pool_wallet_info.py +2 -2
  307. chia/protocols/farmer_protocol.py +3 -6
  308. chia/protocols/full_node_protocol.py +3 -2
  309. chia/protocols/harvester_protocol.py +3 -4
  310. chia/protocols/pool_protocol.py +2 -2
  311. chia/protocols/shared_protocol.py +2 -1
  312. chia/protocols/timelord_protocol.py +4 -4
  313. chia/protocols/wallet_protocol.py +2 -2
  314. chia/rpc/data_layer_rpc_api.py +3 -4
  315. chia/rpc/data_layer_rpc_client.py +3 -2
  316. chia/rpc/farmer_rpc_api.py +2 -2
  317. chia/rpc/farmer_rpc_client.py +2 -1
  318. chia/rpc/full_node_rpc_api.py +3 -2
  319. chia/rpc/full_node_rpc_client.py +3 -2
  320. chia/rpc/harvester_rpc_api.py +2 -1
  321. chia/rpc/rpc_client.py +2 -2
  322. chia/rpc/rpc_server.py +1 -1
  323. chia/rpc/wallet_request_types.py +2 -62
  324. chia/rpc/wallet_rpc_api.py +98 -628
  325. chia/rpc/wallet_rpc_client.py +5 -253
  326. chia/seeder/crawl_store.py +1 -1
  327. chia/seeder/crawler.py +2 -2
  328. chia/seeder/peer_record.py +2 -1
  329. chia/seeder/start_crawler.py +3 -1
  330. chia/server/address_manager.py +2 -1
  331. chia/server/address_manager_store.py +1 -1
  332. chia/server/capabilities.py +2 -1
  333. chia/server/introducer_peers.py +2 -1
  334. chia/server/node_discovery.py +1 -1
  335. chia/server/outbound_message.py +2 -1
  336. chia/server/server.py +2 -2
  337. chia/server/start_data_layer.py +2 -1
  338. chia/server/start_farmer.py +3 -1
  339. chia/server/start_full_node.py +4 -2
  340. chia/server/start_harvester.py +3 -1
  341. chia/server/start_introducer.py +12 -1
  342. chia/server/start_service.py +2 -1
  343. chia/server/start_timelord.py +3 -1
  344. chia/server/start_wallet.py +3 -1
  345. chia/server/upnp.py +1 -2
  346. chia/server/ws_connection.py +3 -4
  347. chia/simulator/add_blocks_in_batches.py +5 -3
  348. chia/simulator/block_tools.py +16 -12
  349. chia/simulator/full_node_simulator.py +9 -14
  350. chia/simulator/setup_services.py +5 -3
  351. chia/simulator/simulator_full_node_rpc_api.py +3 -2
  352. chia/simulator/simulator_full_node_rpc_client.py +3 -2
  353. chia/simulator/simulator_protocol.py +3 -2
  354. chia/simulator/simulator_test_tools.py +2 -2
  355. chia/simulator/start_simulator.py +3 -2
  356. chia/simulator/wallet_tools.py +3 -4
  357. chia/timelord/iters_from_block.py +4 -4
  358. chia/timelord/timelord.py +7 -12
  359. chia/timelord/timelord_api.py +3 -3
  360. chia/timelord/timelord_state.py +4 -3
  361. chia/types/block_protocol.py +2 -2
  362. chia/types/blockchain_format/coin.py +2 -2
  363. chia/types/blockchain_format/program.py +1 -1
  364. chia/types/blockchain_format/proof_of_space.py +3 -4
  365. chia/types/blockchain_format/tree_hash.py +1 -1
  366. chia/types/blockchain_format/vdf.py +3 -4
  367. chia/types/clvm_cost.py +1 -1
  368. chia/types/coin_record.py +4 -3
  369. chia/types/coin_spend.py +1 -1
  370. chia/types/eligible_coin_spends.py +9 -5
  371. chia/types/fee_rate.py +1 -1
  372. chia/types/generator_types.py +3 -3
  373. chia/types/internal_mempool_item.py +3 -2
  374. chia/types/mempool_item.py +10 -3
  375. chia/types/mempool_submission_status.py +2 -1
  376. chia/types/mojos.py +1 -1
  377. chia/types/peer_info.py +2 -1
  378. chia/types/transaction_queue_entry.py +2 -1
  379. chia/types/unfinished_header_block.py +4 -4
  380. chia/types/validation_state.py +2 -1
  381. chia/types/weight_proof.py +1 -9
  382. chia/util/augmented_chain.py +20 -9
  383. chia/util/block_cache.py +8 -4
  384. chia/util/condition_tools.py +2 -2
  385. chia/util/full_block_utils.py +3 -4
  386. chia/util/generator_tools.py +2 -2
  387. chia/util/initial-config.yaml +2 -11
  388. chia/util/network.py +2 -2
  389. chia/util/prev_transaction_block.py +2 -1
  390. chia/util/task_timing.py +1 -1
  391. chia/util/vdf_prover.py +3 -3
  392. chia/util/ws_message.py +1 -1
  393. chia/wallet/cat_wallet/cat_info.py +3 -2
  394. chia/wallet/cat_wallet/cat_outer_puzzle.py +3 -2
  395. chia/wallet/cat_wallet/cat_utils.py +6 -4
  396. chia/wallet/cat_wallet/cat_wallet.py +16 -18
  397. chia/wallet/cat_wallet/lineage_store.py +2 -1
  398. chia/wallet/coin_selection.py +5 -5
  399. chia/wallet/conditions.py +22 -16
  400. chia/wallet/db_wallet/db_wallet_puzzles.py +15 -15
  401. chia/wallet/derivation_record.py +2 -2
  402. chia/wallet/derive_keys.py +2 -2
  403. chia/wallet/did_wallet/did_info.py +3 -2
  404. chia/wallet/did_wallet/did_wallet.py +41 -19
  405. chia/wallet/did_wallet/did_wallet_puzzles.py +18 -12
  406. chia/wallet/driver_protocol.py +1 -1
  407. chia/wallet/lineage_proof.py +3 -2
  408. chia/wallet/nft_wallet/metadata_outer_puzzle.py +6 -7
  409. chia/wallet/nft_wallet/nft_info.py +5 -5
  410. chia/wallet/nft_wallet/nft_puzzle_utils.py +293 -0
  411. chia/wallet/nft_wallet/nft_puzzles.py +21 -298
  412. chia/wallet/nft_wallet/nft_wallet.py +47 -62
  413. chia/wallet/nft_wallet/ownership_outer_puzzle.py +4 -8
  414. chia/wallet/nft_wallet/singleton_outer_puzzle.py +3 -2
  415. chia/wallet/nft_wallet/transfer_program_puzzle.py +6 -10
  416. chia/wallet/nft_wallet/uncurry_nft.py +6 -8
  417. chia/wallet/notification_manager.py +5 -5
  418. chia/wallet/notification_store.py +3 -2
  419. chia/wallet/outer_puzzles.py +2 -1
  420. chia/wallet/puzzles/clawback/drivers.py +21 -8
  421. chia/wallet/puzzles/clawback/metadata.py +3 -2
  422. chia/wallet/puzzles/clawback/puzzle_decorator.py +5 -4
  423. chia/wallet/puzzles/deployed_puzzle_hashes.json +0 -10
  424. chia/wallet/puzzles/p2_conditions.py +3 -2
  425. chia/wallet/puzzles/p2_delegated_conditions.py +3 -2
  426. chia/wallet/puzzles/p2_delegated_puzzle.py +3 -2
  427. chia/wallet/puzzles/p2_delegated_puzzle_or_hidden_puzzle.py +3 -3
  428. chia/wallet/puzzles/p2_m_of_n_delegate_direct.py +3 -2
  429. chia/wallet/puzzles/p2_puzzle_hash.py +4 -3
  430. chia/wallet/puzzles/puzzle_utils.py +3 -2
  431. chia/wallet/puzzles/singleton_top_layer.py +26 -10
  432. chia/wallet/puzzles/singleton_top_layer_v1_1.py +21 -9
  433. chia/wallet/puzzles/tails.py +21 -129
  434. chia/wallet/signer_protocol.py +3 -2
  435. chia/wallet/singleton.py +12 -6
  436. chia/wallet/singleton_record.py +3 -2
  437. chia/wallet/trade_manager.py +31 -55
  438. chia/wallet/trade_record.py +3 -2
  439. chia/wallet/trading/offer.py +14 -13
  440. chia/wallet/trading/trade_store.py +3 -4
  441. chia/wallet/transaction_record.py +2 -2
  442. chia/wallet/util/blind_signer_tl.py +3 -2
  443. chia/wallet/util/compute_hints.py +3 -2
  444. chia/wallet/util/compute_memos.py +2 -2
  445. chia/wallet/util/curry_and_treehash.py +1 -2
  446. chia/wallet/util/merkle_tree.py +1 -1
  447. chia/wallet/util/merkle_utils.py +1 -1
  448. chia/wallet/util/new_peak_queue.py +2 -1
  449. chia/wallet/util/notifications.py +5 -4
  450. chia/wallet/util/peer_request_cache.py +3 -2
  451. chia/wallet/util/puzzle_compression.py +6 -4
  452. chia/wallet/util/puzzle_decorator.py +6 -4
  453. chia/wallet/util/query_filter.py +3 -2
  454. chia/wallet/util/tx_config.py +3 -3
  455. chia/wallet/util/wallet_sync_utils.py +2 -2
  456. chia/wallet/util/wallet_types.py +2 -3
  457. chia/wallet/vc_wallet/cr_cat_drivers.py +18 -22
  458. chia/wallet/vc_wallet/cr_cat_wallet.py +14 -10
  459. chia/wallet/vc_wallet/cr_outer_puzzle.py +2 -2
  460. chia/wallet/vc_wallet/vc_drivers.py +50 -68
  461. chia/wallet/vc_wallet/vc_store.py +2 -2
  462. chia/wallet/vc_wallet/vc_wallet.py +47 -15
  463. chia/wallet/wallet.py +51 -46
  464. chia/wallet/wallet_action_scope.py +4 -0
  465. chia/wallet/wallet_blockchain.py +12 -7
  466. chia/wallet/wallet_coin_record.py +3 -2
  467. chia/wallet/wallet_coin_store.py +3 -2
  468. chia/wallet/wallet_info.py +2 -1
  469. chia/wallet/wallet_interested_store.py +3 -2
  470. chia/wallet/wallet_nft_store.py +4 -4
  471. chia/wallet/wallet_node.py +3 -4
  472. chia/wallet/wallet_pool_store.py +3 -4
  473. chia/wallet/wallet_protocol.py +19 -5
  474. chia/wallet/wallet_puzzle_store.py +2 -2
  475. chia/wallet/wallet_retry_store.py +3 -6
  476. chia/wallet/wallet_singleton_store.py +2 -2
  477. chia/wallet/wallet_state_manager.py +20 -197
  478. chia/wallet/wallet_transaction_store.py +2 -2
  479. chia/wallet/wallet_user_store.py +2 -1
  480. chia/wallet/wallet_weight_proof_handler.py +3 -2
  481. {chia_blockchain-2.5.2rc2.dist-info → chia_blockchain-2.5.3.dist-info}/METADATA +3 -2
  482. chia_blockchain-2.5.3.dist-info/RECORD +891 -0
  483. mozilla-ca/cacert.pem +64 -33
  484. chia/_tests/clvm/test_condition_codes.py +0 -13
  485. chia/_tests/cmds/wallet/test_dao.py +0 -565
  486. chia/_tests/wallet/dao_wallet/__init__.py +0 -0
  487. chia/_tests/wallet/dao_wallet/config.py +0 -3
  488. chia/_tests/wallet/dao_wallet/test_dao_clvm.py +0 -1330
  489. chia/_tests/wallet/dao_wallet/test_dao_wallets.py +0 -3488
  490. chia/cmds/dao.py +0 -1064
  491. chia/cmds/dao_funcs.py +0 -598
  492. chia/consensus/puzzles/__init__.py +0 -0
  493. chia/consensus/puzzles/chialisp_deserialisation.clsp +0 -69
  494. chia/consensus/puzzles/chialisp_deserialisation.clsp.hex +0 -1
  495. chia/consensus/puzzles/rom_bootstrap_generator.clsp +0 -37
  496. chia/consensus/puzzles/rom_bootstrap_generator.clsp.hex +0 -1
  497. chia/full_node/puzzles/__init__.py +0 -0
  498. chia/full_node/puzzles/block_program_zero.clsp +0 -14
  499. chia/full_node/puzzles/block_program_zero.clsp.hex +0 -1
  500. chia/full_node/puzzles/decompress_coin_spend_entry.clsp +0 -5
  501. chia/full_node/puzzles/decompress_coin_spend_entry.clsp.hex +0 -1
  502. chia/full_node/puzzles/decompress_coin_spend_entry_with_prefix.clsp +0 -7
  503. chia/full_node/puzzles/decompress_coin_spend_entry_with_prefix.clsp.hex +0 -1
  504. chia/full_node/puzzles/decompress_puzzle.clsp +0 -6
  505. chia/full_node/puzzles/decompress_puzzle.clsp.hex +0 -1
  506. chia/pools/puzzles/__init__.py +0 -0
  507. chia/pools/puzzles/pool_member_innerpuz.clsp +0 -70
  508. chia/pools/puzzles/pool_member_innerpuz.clsp.hex +0 -1
  509. chia/pools/puzzles/pool_waitingroom_innerpuz.clsp +0 -69
  510. chia/pools/puzzles/pool_waitingroom_innerpuz.clsp.hex +0 -1
  511. chia/simulator/simulator_constants.py +0 -13
  512. chia/types/blockchain_format/foliage.py +0 -8
  513. chia/types/blockchain_format/pool_target.py +0 -5
  514. chia/types/blockchain_format/reward_chain_block.py +0 -6
  515. chia/types/blockchain_format/sized_bytes.py +0 -11
  516. chia/util/ints.py +0 -19
  517. chia/wallet/cat_wallet/dao_cat_info.py +0 -28
  518. chia/wallet/cat_wallet/dao_cat_wallet.py +0 -669
  519. chia/wallet/cat_wallet/puzzles/__init__.py +0 -0
  520. chia/wallet/cat_wallet/puzzles/cat_truths.clib +0 -31
  521. chia/wallet/cat_wallet/puzzles/cat_v2.clsp +0 -397
  522. chia/wallet/cat_wallet/puzzles/cat_v2.clsp.hex +0 -1
  523. chia/wallet/cat_wallet/puzzles/delegated_tail.clsp +0 -25
  524. chia/wallet/cat_wallet/puzzles/delegated_tail.clsp.hex +0 -1
  525. chia/wallet/cat_wallet/puzzles/everything_with_signature.clsp +0 -15
  526. chia/wallet/cat_wallet/puzzles/everything_with_signature.clsp.hex +0 -1
  527. chia/wallet/cat_wallet/puzzles/genesis_by_coin_id.clsp +0 -26
  528. chia/wallet/cat_wallet/puzzles/genesis_by_coin_id.clsp.hex +0 -1
  529. chia/wallet/cat_wallet/puzzles/genesis_by_coin_id_or_singleton.clsp +0 -42
  530. chia/wallet/cat_wallet/puzzles/genesis_by_coin_id_or_singleton.clsp.hex +0 -1
  531. chia/wallet/cat_wallet/puzzles/genesis_by_puzzle_hash.clsp +0 -24
  532. chia/wallet/cat_wallet/puzzles/genesis_by_puzzle_hash.clsp.hex +0 -1
  533. chia/wallet/dao_wallet/__init__.py +0 -0
  534. chia/wallet/dao_wallet/dao_info.py +0 -61
  535. chia/wallet/dao_wallet/dao_utils.py +0 -811
  536. chia/wallet/dao_wallet/dao_wallet.py +0 -2119
  537. chia/wallet/did_wallet/puzzles/__init__.py +0 -0
  538. chia/wallet/did_wallet/puzzles/did_innerpuz.clsp +0 -135
  539. chia/wallet/did_wallet/puzzles/did_innerpuz.clsp.hex +0 -1
  540. chia/wallet/payment.py +0 -33
  541. chia/wallet/puzzles/augmented_condition.clsp +0 -13
  542. chia/wallet/puzzles/augmented_condition.clsp.hex +0 -1
  543. chia/wallet/puzzles/condition_codes.clib +0 -77
  544. chia/wallet/puzzles/curry-and-treehash.clib +0 -102
  545. chia/wallet/puzzles/curry.clib +0 -135
  546. chia/wallet/puzzles/curry_by_index.clib +0 -16
  547. chia/wallet/puzzles/dao_cat_eve.clsp +0 -17
  548. chia/wallet/puzzles/dao_cat_eve.clsp.hex +0 -1
  549. chia/wallet/puzzles/dao_cat_launcher.clsp +0 -36
  550. chia/wallet/puzzles/dao_cat_launcher.clsp.hex +0 -1
  551. chia/wallet/puzzles/dao_finished_state.clsp +0 -35
  552. chia/wallet/puzzles/dao_finished_state.clsp.hex +0 -1
  553. chia/wallet/puzzles/dao_finished_state.clsp.hex.sha256tree +0 -1
  554. chia/wallet/puzzles/dao_lockup.clsp +0 -288
  555. chia/wallet/puzzles/dao_lockup.clsp.hex +0 -1
  556. chia/wallet/puzzles/dao_lockup.clsp.hex.sha256tree +0 -1
  557. chia/wallet/puzzles/dao_proposal.clsp +0 -377
  558. chia/wallet/puzzles/dao_proposal.clsp.hex +0 -1
  559. chia/wallet/puzzles/dao_proposal.clsp.hex.sha256tree +0 -1
  560. chia/wallet/puzzles/dao_proposal_timer.clsp +0 -78
  561. chia/wallet/puzzles/dao_proposal_timer.clsp.hex +0 -1
  562. chia/wallet/puzzles/dao_proposal_timer.clsp.hex.sha256tree +0 -1
  563. chia/wallet/puzzles/dao_proposal_validator.clsp +0 -87
  564. chia/wallet/puzzles/dao_proposal_validator.clsp.hex +0 -1
  565. chia/wallet/puzzles/dao_proposal_validator.clsp.hex.sha256tree +0 -1
  566. chia/wallet/puzzles/dao_spend_p2_singleton_v2.clsp +0 -240
  567. chia/wallet/puzzles/dao_spend_p2_singleton_v2.clsp.hex +0 -1
  568. chia/wallet/puzzles/dao_spend_p2_singleton_v2.clsp.hex.sha256tree +0 -1
  569. chia/wallet/puzzles/dao_treasury.clsp +0 -115
  570. chia/wallet/puzzles/dao_treasury.clsp.hex +0 -1
  571. chia/wallet/puzzles/dao_update_proposal.clsp +0 -44
  572. chia/wallet/puzzles/dao_update_proposal.clsp.hex +0 -1
  573. chia/wallet/puzzles/json.clib +0 -25
  574. chia/wallet/puzzles/merkle_utils.clib +0 -18
  575. chia/wallet/puzzles/notification.clsp +0 -7
  576. chia/wallet/puzzles/notification.clsp.hex +0 -1
  577. chia/wallet/puzzles/p2_1_of_n.clsp +0 -22
  578. chia/wallet/puzzles/p2_1_of_n.clsp.hex +0 -1
  579. chia/wallet/puzzles/p2_conditions.clsp +0 -3
  580. chia/wallet/puzzles/p2_conditions.clsp.hex +0 -1
  581. chia/wallet/puzzles/p2_delegated_conditions.clsp +0 -18
  582. chia/wallet/puzzles/p2_delegated_conditions.clsp.hex +0 -1
  583. chia/wallet/puzzles/p2_delegated_puzzle.clsp +0 -19
  584. chia/wallet/puzzles/p2_delegated_puzzle.clsp.hex +0 -1
  585. chia/wallet/puzzles/p2_delegated_puzzle_or_hidden_puzzle.clsp +0 -91
  586. chia/wallet/puzzles/p2_delegated_puzzle_or_hidden_puzzle.clsp.hex +0 -1
  587. chia/wallet/puzzles/p2_m_of_n_delegate_direct.clsp +0 -108
  588. chia/wallet/puzzles/p2_m_of_n_delegate_direct.clsp.hex +0 -1
  589. chia/wallet/puzzles/p2_parent.clsp +0 -19
  590. chia/wallet/puzzles/p2_parent.clsp.hex +0 -1
  591. chia/wallet/puzzles/p2_puzzle_hash.clsp +0 -18
  592. chia/wallet/puzzles/p2_puzzle_hash.clsp.hex +0 -1
  593. chia/wallet/puzzles/p2_singleton.clsp +0 -30
  594. chia/wallet/puzzles/p2_singleton.clsp.hex +0 -1
  595. chia/wallet/puzzles/p2_singleton_aggregator.clsp +0 -81
  596. chia/wallet/puzzles/p2_singleton_aggregator.clsp.hex +0 -1
  597. chia/wallet/puzzles/p2_singleton_or_delayed_puzhash.clsp +0 -50
  598. chia/wallet/puzzles/p2_singleton_or_delayed_puzhash.clsp.hex +0 -1
  599. chia/wallet/puzzles/p2_singleton_via_delegated_puzzle.clsp +0 -47
  600. chia/wallet/puzzles/p2_singleton_via_delegated_puzzle.clsp.hex +0 -1
  601. chia/wallet/puzzles/settlement_payments.clsp +0 -49
  602. chia/wallet/puzzles/settlement_payments.clsp.hex +0 -1
  603. chia/wallet/puzzles/sha256tree.clib +0 -11
  604. chia/wallet/puzzles/singleton_launcher.clsp +0 -16
  605. chia/wallet/puzzles/singleton_launcher.clsp.hex +0 -1
  606. chia/wallet/puzzles/singleton_top_layer.clsp +0 -177
  607. chia/wallet/puzzles/singleton_top_layer.clsp.hex +0 -1
  608. chia/wallet/puzzles/singleton_top_layer_v1_1.clsp +0 -107
  609. chia/wallet/puzzles/singleton_top_layer_v1_1.clsp.hex +0 -1
  610. chia/wallet/puzzles/singleton_truths.clib +0 -21
  611. chia/wallet/vc_wallet/cr_puzzles/__init__.py +0 -0
  612. chia/wallet/vc_wallet/cr_puzzles/conditions_w_fee_announce.clsp +0 -3
  613. chia/wallet/vc_wallet/cr_puzzles/conditions_w_fee_announce.clsp.hex +0 -1
  614. chia/wallet/vc_wallet/cr_puzzles/credential_restriction.clsp +0 -304
  615. chia/wallet/vc_wallet/cr_puzzles/credential_restriction.clsp.hex +0 -1
  616. chia/wallet/vc_wallet/cr_puzzles/flag_proofs_checker.clsp +0 -45
  617. chia/wallet/vc_wallet/cr_puzzles/flag_proofs_checker.clsp.hex +0 -1
  618. chia/wallet/vc_wallet/vc_puzzles/__init__.py +0 -0
  619. chia/wallet/vc_wallet/vc_puzzles/covenant_layer.clsp +0 -30
  620. chia/wallet/vc_wallet/vc_puzzles/covenant_layer.clsp.hex +0 -1
  621. chia/wallet/vc_wallet/vc_puzzles/eml_covenant_morpher.clsp +0 -75
  622. chia/wallet/vc_wallet/vc_puzzles/eml_covenant_morpher.clsp.hex +0 -1
  623. chia/wallet/vc_wallet/vc_puzzles/eml_transfer_program_covenant_adapter.clsp +0 -32
  624. chia/wallet/vc_wallet/vc_puzzles/eml_transfer_program_covenant_adapter.clsp.hex +0 -1
  625. chia/wallet/vc_wallet/vc_puzzles/eml_update_metadata_with_DID.clsp +0 -80
  626. chia/wallet/vc_wallet/vc_puzzles/eml_update_metadata_with_DID.clsp.hex +0 -1
  627. chia/wallet/vc_wallet/vc_puzzles/exigent_metadata_layer.clsp +0 -163
  628. chia/wallet/vc_wallet/vc_puzzles/exigent_metadata_layer.clsp.hex +0 -1
  629. chia/wallet/vc_wallet/vc_puzzles/p2_announced_delegated_puzzle.clsp +0 -16
  630. chia/wallet/vc_wallet/vc_puzzles/p2_announced_delegated_puzzle.clsp.hex +0 -1
  631. chia/wallet/vc_wallet/vc_puzzles/standard_vc_backdoor_puzzle.clsp +0 -74
  632. chia/wallet/vc_wallet/vc_puzzles/standard_vc_backdoor_puzzle.clsp.hex +0 -1
  633. chia/wallet/vc_wallet/vc_puzzles/std_parent_morpher.clsp +0 -23
  634. chia/wallet/vc_wallet/vc_puzzles/std_parent_morpher.clsp.hex +0 -1
  635. chia/wallet/vc_wallet/vc_puzzles/viral_backdoor.clsp +0 -64
  636. chia/wallet/vc_wallet/vc_puzzles/viral_backdoor.clsp.hex +0 -1
  637. chia_blockchain-2.5.2rc2.dist-info/RECORD +0 -1042
  638. {chia_blockchain-2.5.2rc2.dist-info → chia_blockchain-2.5.3.dist-info}/LICENSE +0 -0
  639. {chia_blockchain-2.5.2rc2.dist-info → chia_blockchain-2.5.3.dist-info}/WHEEL +0 -0
  640. {chia_blockchain-2.5.2rc2.dist-info → chia_blockchain-2.5.3.dist-info}/entry_points.txt +0 -0
@@ -5,13 +5,14 @@ from unittest import TestCase
5
5
 
6
6
  import pytest
7
7
  from chia_rs import AugSchemeMPL, G1Element, G2Element, PrivateKey
8
+ from chia_rs.sized_bytes import bytes32
9
+ from chia_rs.sized_ints import uint32, uint64
8
10
 
9
11
  from chia._tests.clvm.coin_store import BadSpendBundleError, CoinStore, CoinTimestamp
10
12
  from chia._tests.clvm.test_puzzles import public_key_for_index, secret_exponent_for_index
11
13
  from chia._tests.util.key_tool import KeyTool
12
14
  from chia.consensus.default_constants import DEFAULT_CONSTANTS
13
15
  from chia.pools.pool_puzzles import (
14
- SINGLETON_MOD_HASH,
15
16
  create_absorb_spend,
16
17
  create_p2_singleton_puzzle,
17
18
  create_p2_singleton_puzzle_hash,
@@ -29,10 +30,8 @@ from chia.pools.pool_puzzles import (
29
30
  from chia.pools.pool_wallet_info import PoolState
30
31
  from chia.types.blockchain_format.coin import Coin
31
32
  from chia.types.blockchain_format.program import Program
32
- from chia.types.blockchain_format.sized_bytes import bytes32
33
33
  from chia.types.coin_spend import CoinSpend, make_spend
34
34
  from chia.types.spend_bundle import SpendBundle
35
- from chia.util.ints import uint32, uint64
36
35
  from chia.wallet.puzzles import singleton_top_layer
37
36
  from chia.wallet.puzzles.p2_conditions import puzzle_for_conditions
38
37
  from chia.wallet.puzzles.p2_delegated_puzzle_or_hidden_puzzle import (
@@ -41,6 +40,7 @@ from chia.wallet.puzzles.p2_delegated_puzzle_or_hidden_puzzle import (
41
40
  puzzle_for_pk,
42
41
  solution_for_conditions,
43
42
  )
43
+ from chia.wallet.puzzles.singleton_top_layer import SINGLETON_MOD_HASH
44
44
  from chia.wallet.singleton import get_most_recent_singleton_coin_from_coin_spend
45
45
 
46
46
  """
@@ -14,13 +14,13 @@ import pytest
14
14
 
15
15
  # TODO: update after resolution in https://github.com/pytest-dev/pytest/issues/7469
16
16
  from _pytest.fixtures import SubRequest
17
- from chia_rs import G1Element
17
+ from chia_rs import ConsensusConstants, G1Element
18
+ from chia_rs.sized_bytes import bytes32
19
+ from chia_rs.sized_ints import uint32, uint64
18
20
 
19
21
  from chia._tests.environments.wallet import WalletStateTransition, WalletTestFramework
20
22
  from chia._tests.util.setup_nodes import setup_simulators_and_wallets_service
21
23
  from chia._tests.util.time_out_assert import time_out_assert
22
- from chia.consensus.constants import ConsensusConstants
23
- from chia.pools.pool_puzzles import SINGLETON_LAUNCHER_HASH
24
24
  from chia.pools.pool_wallet_info import PoolSingletonState, PoolWalletInfo
25
25
  from chia.rpc.wallet_rpc_client import WalletRpcClient
26
26
  from chia.simulator.add_blocks_in_batches import add_blocks_in_batches
@@ -29,13 +29,12 @@ from chia.simulator.full_node_simulator import FullNodeSimulator
29
29
  from chia.simulator.simulator_protocol import ReorgProtocol
30
30
  from chia.simulator.start_simulator import SimulatorFullNodeService
31
31
  from chia.types.aliases import WalletService
32
- from chia.types.blockchain_format.sized_bytes import bytes32
33
32
  from chia.types.peer_info import PeerInfo
34
33
  from chia.util.bech32m import encode_puzzle_hash
35
34
  from chia.util.byte_types import hexstr_to_bytes
36
35
  from chia.util.config import load_config
37
- from chia.util.ints import uint32, uint64
38
36
  from chia.wallet.derive_keys import find_authentication_sk, find_owner_sk
37
+ from chia.wallet.singleton import SINGLETON_LAUNCHER_PUZZLE_HASH as SINGLETON_LAUNCHER_HASH
39
38
  from chia.wallet.transaction_record import TransactionRecord
40
39
  from chia.wallet.util.transaction_type import TransactionType
41
40
  from chia.wallet.util.tx_config import DEFAULT_TX_CONFIG
@@ -7,10 +7,10 @@ from unittest.mock import MagicMock
7
7
 
8
8
  import pytest
9
9
  from chia_rs import G1Element
10
+ from chia_rs.sized_bytes import bytes32
10
11
 
11
12
  from chia._tests.util.benchmarks import rand_g1, rand_hash
12
13
  from chia.pools.pool_wallet import PoolWallet
13
- from chia.types.blockchain_format.sized_bytes import bytes32
14
14
 
15
15
 
16
16
  @dataclass
@@ -5,15 +5,15 @@ from dataclasses import dataclass, field
5
5
  from typing import Optional
6
6
 
7
7
  import pytest
8
+ from chia_rs.sized_bytes import bytes32
9
+ from chia_rs.sized_ints import uint32, uint64
8
10
  from clvm_tools import binutils
9
11
 
10
12
  from chia._tests.util.db_connection import DBConnection
11
13
  from chia.types.blockchain_format.coin import Coin
12
14
  from chia.types.blockchain_format.program import Program
13
15
  from chia.types.blockchain_format.serialized_program import SerializedProgram
14
- from chia.types.blockchain_format.sized_bytes import bytes32
15
16
  from chia.types.coin_spend import CoinSpend, compute_additions, make_spend
16
- from chia.util.ints import uint32, uint64
17
17
  from chia.wallet.wallet_pool_store import WalletPoolStore
18
18
 
19
19
 
@@ -6,12 +6,12 @@ from pathlib import Path
6
6
  from typing import Any, Callable, Optional
7
7
 
8
8
  import pytest
9
+ from chia_rs.sized_ints import uint16
9
10
 
10
11
  from chia._tests.util.misc import Marks, RecordingWebServer, datacases
11
12
  from chia.rpc.rpc_client import ResponseFailureError, RpcClient
12
13
  from chia.rpc.rpc_server import RpcServer
13
14
  from chia.server.outbound_message import NodeType
14
- from chia.util.ints import uint16
15
15
 
16
16
  non_fetch_client_methods = {
17
17
  RpcClient.create,
@@ -11,11 +11,11 @@ from typing import TYPE_CHECKING, Any, ClassVar, Optional, cast
11
11
 
12
12
  import aiohttp
13
13
  import pytest
14
+ from chia_rs.sized_ints import uint16
14
15
 
15
16
  from chia.rpc.rpc_server import Endpoint, EndpointResult, RpcServer, RpcServiceProtocol
16
17
  from chia.ssl.create_ssl import create_all_ssl
17
18
  from chia.util.config import load_config
18
- from chia.util.ints import uint16
19
19
  from chia.util.ws_message import WsRpcMessage
20
20
 
21
21
  root_logger = logging.getLogger()
@@ -5,7 +5,13 @@ import json
5
5
  from collections.abc import AsyncIterator
6
6
 
7
7
  import aiohttp
8
+ import dns.rdataclass
9
+ import dns.rdatatype
10
+ import dns.rdtypes.IN.A
11
+ import dns.rdtypes.IN.AAAA
8
12
  import pytest
13
+ from chia_rs.sized_bytes import bytes32
14
+ from chia_rs.sized_ints import uint8, uint16, uint32, uint64
9
15
 
10
16
  from chia._tests.core.node_height import node_height_at_least
11
17
  from chia._tests.util.setup_nodes import FullSystem, OldSimulatorsAndWallets
@@ -23,9 +29,7 @@ from chia.simulator.full_node_simulator import FullNodeSimulator
23
29
  from chia.simulator.keyring import TempKeyring
24
30
  from chia.simulator.setup_services import setup_full_node
25
31
  from chia.simulator.simulator_protocol import FarmNewBlockProtocol, GetAllCoinsProtocol, ReorgProtocol
26
- from chia.types.blockchain_format.sized_bytes import bytes32
27
32
  from chia.types.peer_info import PeerInfo
28
- from chia.util.ints import uint8, uint16, uint32, uint64
29
33
  from chia.util.ws_message import create_payload
30
34
  from chia.wallet.util.tx_config import DEFAULT_TX_CONFIG
31
35
  from chia.wallet.wallet_node import WalletNode
@@ -64,6 +68,17 @@ async def extra_node(self_hostname) -> AsyncIterator[FullNodeAPI | FullNodeSimul
64
68
  yield service._api
65
69
 
66
70
 
71
+ class FakeDNSResolver:
72
+ async def resolve(self, qname, rdtype, lifetime):
73
+ if rdtype == "A":
74
+ record = dns.rdtypes.IN.A.A(dns.rdataclass.IN, dns.rdatatype.A, "1.2.3.4")
75
+ return [record]
76
+ elif rdtype == "AAAA":
77
+ record = dns.rdtypes.IN.AAAA.AAAA(dns.rdataclass.IN, dns.rdatatype.AAAA, "::1")
78
+ return [record]
79
+ return []
80
+
81
+
67
82
  class TestSimulation:
68
83
  @pytest.mark.limit_consensus_modes(reason="This test only supports one running at a time.")
69
84
  @pytest.mark.anyio
@@ -214,8 +229,8 @@ class TestSimulation:
214
229
  await time_out_assert(5, wallet.get_unconfirmed_balance, funds)
215
230
  async with wallet.wallet_state_manager.new_action_scope(DEFAULT_TX_CONFIG, push=True) as action_scope:
216
231
  await wallet.generate_signed_transaction(
217
- uint64(10),
218
- await wallet_node_2.wallet_state_manager.main_wallet.get_new_puzzlehash(),
232
+ [uint64(10)],
233
+ [await wallet_node_2.wallet_state_manager.main_wallet.get_new_puzzlehash()],
219
234
  action_scope,
220
235
  uint64(0),
221
236
  )
@@ -390,8 +405,8 @@ class TestSimulation:
390
405
  for coin in coins:
391
406
  async with wallet.wallet_state_manager.new_action_scope(DEFAULT_TX_CONFIG, push=True) as action_scope:
392
407
  await wallet.generate_signed_transaction(
393
- amount=uint64(tx_amount),
394
- puzzle_hash=await wallet_node.wallet_state_manager.main_wallet.get_new_puzzlehash(),
408
+ amounts=[uint64(tx_amount)],
409
+ puzzle_hashes=[await wallet_node.wallet_state_manager.main_wallet.get_new_puzzlehash()],
395
410
  action_scope=action_scope,
396
411
  coins={coin},
397
412
  )
@@ -439,8 +454,8 @@ class TestSimulation:
439
454
  ) as action_scope:
440
455
  for coin in coins:
441
456
  await wallet.generate_signed_transaction(
442
- amount=uint64(tx_amount),
443
- puzzle_hash=await wallet_node.wallet_state_manager.main_wallet.get_new_puzzlehash(),
457
+ amounts=[uint64(tx_amount)],
458
+ puzzle_hashes=[await wallet_node.wallet_state_manager.main_wallet.get_new_puzzlehash()],
444
459
  action_scope=action_scope,
445
460
  coins={coin},
446
461
  )
@@ -499,3 +514,16 @@ class TestSimulation:
499
514
 
500
515
  with pytest.raises(Exception, match="Coins must have a positive value"):
501
516
  await full_node_api.create_coins_with_amounts(amounts=amounts, wallet=wallet)
517
+
518
+ @pytest.mark.limit_consensus_modes(reason="This test only supports one running at a time.")
519
+ @pytest.mark.anyio
520
+ async def test_introducer_fallback_to_dns(self, simulation):
521
+ full_system: FullSystem
522
+ full_system, _ = simulation
523
+ introducer = full_system.introducer
524
+ introducer.introducer.dns_servers = ["127.0.0.1"]
525
+ introducer.introducer.resolver = FakeDNSResolver()
526
+ peers = await introducer.introducer.get_peers_from_dns(num_peers=10)
527
+ assert len(peers) == 2
528
+ assert any(peer.host == "1.2.3.4" for peer in peers)
529
+ assert any(peer.host == "::1" for peer in peers)
@@ -1,6 +1,7 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import pytest
4
+ from chia_rs.sized_ints import uint64
4
5
 
5
6
  from chia._tests.util.setup_nodes import OldSimulatorsAndWallets
6
7
  from chia.cmds.units import units
@@ -8,7 +9,6 @@ from chia.server.server import ChiaServer
8
9
  from chia.simulator.block_tools import BlockTools
9
10
  from chia.simulator.full_node_simulator import FullNodeSimulator
10
11
  from chia.types.peer_info import PeerInfo
11
- from chia.util.ints import uint64
12
12
  from chia.wallet.util.tx_config import DEFAULT_TX_CONFIG
13
13
  from chia.wallet.wallet_node import WalletNode
14
14
 
@@ -127,8 +127,8 @@ async def test_wait_transaction_records_entered_mempool(
127
127
  for coin in coins:
128
128
  async with wallet.wallet_state_manager.new_action_scope(DEFAULT_TX_CONFIG, push=True) as action_scope:
129
129
  await wallet.generate_signed_transaction(
130
- amount=uint64(tx_amount),
131
- puzzle_hash=await wallet_node.wallet_state_manager.main_wallet.get_new_puzzlehash(),
130
+ amounts=[uint64(tx_amount)],
131
+ puzzle_hashes=[await wallet_node.wallet_state_manager.main_wallet.get_new_puzzlehash()],
132
132
  action_scope=action_scope,
133
133
  coins={coin},
134
134
  )
@@ -163,8 +163,8 @@ async def test_process_transaction_records(
163
163
  for coin in coins:
164
164
  async with wallet.wallet_state_manager.new_action_scope(DEFAULT_TX_CONFIG, push=True) as action_scope:
165
165
  await wallet.generate_signed_transaction(
166
- amount=uint64(tx_amount),
167
- puzzle_hash=await wallet_node.wallet_state_manager.main_wallet.get_new_puzzlehash(),
166
+ amounts=[uint64(tx_amount)],
167
+ puzzle_hashes=[await wallet_node.wallet_state_manager.main_wallet.get_new_puzzlehash()],
168
168
  action_scope=action_scope,
169
169
  coins={coin},
170
170
  )
@@ -6,14 +6,14 @@ from pathlib import Path
6
6
  from typing import Any
7
7
 
8
8
  import pytest
9
+ from chia_rs.sized_bytes import bytes32
10
+ from chia_rs.sized_ints import uint16
9
11
 
10
12
  from chia._tests.util.time_out_assert import time_out_assert
11
13
  from chia.simulator.full_node_simulator import FullNodeSimulator
12
14
  from chia.simulator.simulator_full_node_rpc_client import SimulatorFullNodeRpcClient
13
15
  from chia.simulator.simulator_test_tools import get_full_chia_simulator, get_puzzle_hash_from_key
14
- from chia.types.blockchain_format.sized_bytes import bytes32
15
16
  from chia.util.hash import std_hash
16
- from chia.util.ints import uint16
17
17
  from chia.util.keychain import Keychain
18
18
 
19
19
 
@@ -3,6 +3,8 @@ from __future__ import annotations
3
3
  from typing import Optional
4
4
 
5
5
  import pytest
6
+ from chia_rs.sized_bytes import bytes32
7
+ from chia_rs.sized_ints import uint128
6
8
 
7
9
  from chia._tests.blockchain.blockchain_test_utils import _validate_and_add_block
8
10
  from chia._tests.util.blockchain import create_blockchain
@@ -17,11 +19,9 @@ from chia.simulator.block_tools import BlockTools
17
19
  from chia.simulator.full_node_simulator import FullNodeSimulator
18
20
  from chia.timelord.timelord_api import TimelordAPI
19
21
  from chia.types.aliases import FullNodeService
20
- from chia.types.blockchain_format.sized_bytes import bytes32
21
22
  from chia.types.blockchain_format.sub_epoch_summary import SubEpochSummary
22
23
  from chia.types.full_block import FullBlock
23
24
  from chia.types.unfinished_block import UnfinishedBlock
24
- from chia.util.ints import uint128
25
25
 
26
26
 
27
27
  class TestNewPeak:
@@ -3,13 +3,14 @@ from __future__ import annotations
3
3
  import json
4
4
  from pathlib import Path
5
5
 
6
+ from chia_rs.sized_bytes import bytes32
7
+ from chia_rs.sized_ints import uint8, uint32, uint64, uint128
8
+
6
9
  from chia._tests.util.run_block import run_json_block
7
10
  from chia.consensus.default_constants import DEFAULT_CONSTANTS
8
- from chia.types.blockchain_format.sized_bytes import bytes32
9
11
  from chia.types.condition_opcodes import ConditionOpcode
10
12
  from chia.types.condition_with_args import ConditionWithArgs
11
13
  from chia.util.hash import std_hash
12
- from chia.util.ints import uint8, uint32, uint64, uint128
13
14
 
14
15
  AGG_SIG_DATA = bytes32.fromhex("ae83525ba8d1dd3f09b277de18ca3e43fc0af20d20c4b3e92ef2a48bd291ccb2")
15
16
 
@@ -4,15 +4,15 @@ import random
4
4
  import time
5
5
 
6
6
  from chia_rs import AugSchemeMPL, PrivateKey
7
+ from chia_rs.sized_bytes import bytes32
8
+ from chia_rs.sized_ints import uint32
7
9
  from clvm_tools import binutils
8
10
 
9
11
  from chia.consensus.default_constants import DEFAULT_CONSTANTS
10
12
  from chia.simulator.wallet_tools import WalletTool
11
13
  from chia.types.blockchain_format.program import INFINITE_COST, Program
12
- from chia.types.blockchain_format.sized_bytes import bytes32
13
14
  from chia.types.condition_opcodes import ConditionOpcode
14
15
  from chia.types.condition_with_args import ConditionWithArgs
15
- from chia.util.ints import uint32
16
16
  from chia.wallet.derive_keys import master_sk_to_wallet_sk
17
17
  from chia.wallet.puzzles.p2_delegated_puzzle import puzzle_for_pk
18
18
 
@@ -3,18 +3,29 @@ from __future__ import annotations
3
3
  import random
4
4
 
5
5
  import importlib_resources
6
- from chia_rs import AugSchemeMPL, ClassgroupElement, Coin, G1Element, G2Element, VDFInfo, VDFProof
6
+ from chia_rs import (
7
+ AugSchemeMPL,
8
+ ClassgroupElement,
9
+ Coin,
10
+ Foliage,
11
+ FoliageBlockData,
12
+ FoliageTransactionBlock,
13
+ G1Element,
14
+ G2Element,
15
+ PoolTarget,
16
+ RewardChainBlock,
17
+ TransactionsInfo,
18
+ VDFInfo,
19
+ VDFProof,
20
+ )
21
+ from chia_rs.sized_bytes import bytes32, bytes100
22
+ from chia_rs.sized_ints import uint8, uint32, uint64, uint128
7
23
 
8
24
  from chia.consensus.coinbase import create_farmer_coin, create_pool_coin
9
25
  from chia.consensus.default_constants import DEFAULT_CONSTANTS
10
- from chia.types.blockchain_format.foliage import Foliage, FoliageBlockData, FoliageTransactionBlock, TransactionsInfo
11
- from chia.types.blockchain_format.pool_target import PoolTarget
12
26
  from chia.types.blockchain_format.proof_of_space import ProofOfSpace
13
- from chia.types.blockchain_format.reward_chain_block import RewardChainBlock
14
27
  from chia.types.blockchain_format.serialized_program import SerializedProgram
15
- from chia.types.blockchain_format.sized_bytes import bytes32, bytes100
16
28
  from chia.types.full_block import FullBlock
17
- from chia.util.ints import uint8, uint32, uint64, uint128
18
29
 
19
30
  # farmer puzzle hash
20
31
  ph = bytes32(b"a" * 32)
@@ -7,8 +7,9 @@ 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
11
+
10
12
  from chia.consensus.blockchain import Blockchain
11
- from chia.consensus.constants import ConsensusConstants
12
13
  from chia.full_node.block_store import BlockStore
13
14
  from chia.full_node.coin_store import CoinStore
14
15
  from chia.simulator.block_tools import BlockTools
@@ -3,13 +3,14 @@ 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
7
+ from chia_rs.sized_bytes import bytes32
8
+ from chia_rs.sized_ints import uint32
9
+
6
10
  from chia.consensus.block_record import BlockRecord
7
- from chia.types.blockchain_format.sized_bytes import bytes32
8
11
  from chia.types.blockchain_format.sub_epoch_summary import SubEpochSummary
9
12
  from chia.types.blockchain_format.vdf import VDFInfo
10
13
  from chia.types.header_block import HeaderBlock
11
- from chia.types.weight_proof import SubEpochChallengeSegment, SubEpochSegments
12
- from chia.util.ints import uint32
13
14
 
14
15
 
15
16
  # implements BlockchainInterface
@@ -66,8 +67,11 @@ class BlockchainMock:
66
67
  assert height in self._height_to_hash
67
68
  return self._height_to_hash[height]
68
69
 
69
- def contains_block(self, header_hash: bytes32) -> bool:
70
- return header_hash in self._block_records
70
+ def contains_block(self, header_hash: bytes32, height: uint32) -> bool:
71
+ block_hash_from_hh = self.height_to_hash(height)
72
+ if block_hash_from_hh is None or block_hash_from_hh != header_hash:
73
+ return False
74
+ return True
71
75
 
72
76
  async def contains_block_from_db(self, header_hash: bytes32) -> bool:
73
77
  return header_hash in self._block_records
@@ -7,8 +7,9 @@ import sys
7
7
  from pathlib import Path
8
8
  from typing import Any, Callable
9
9
 
10
+ from chia_rs.sized_ints import uint32
11
+
10
12
  from chia._tests.util.network_protocol_data import * # noqa: F403
11
- from chia.util.ints import uint32
12
13
 
13
14
  version = "1.0"
14
15
 
@@ -1,7 +1,8 @@
1
1
  from __future__ import annotations
2
2
 
3
+ from chia_rs.sized_ints import uint8, uint16, uint32, uint64, uint128
4
+
3
5
  from chia.consensus.default_constants import DEFAULT_CONSTANTS
4
- from chia.util.ints import uint8, uint16, uint32, uint64, uint128
5
6
 
6
7
  test_constants = DEFAULT_CONSTANTS.replace(
7
8
  MIN_PLOT_SIZE=uint8(18),
@@ -12,6 +12,8 @@ from typing import Callable, Optional, cast
12
12
 
13
13
  import aiosqlite
14
14
  import zstd
15
+ from chia_rs.sized_bytes import bytes32
16
+ from chia_rs.sized_ints import uint16
15
17
 
16
18
  from chia._tests.util.constants import test_constants as TEST_CONSTANTS
17
19
  from chia.cmds.init_funcs import chia_init
@@ -24,12 +26,11 @@ from chia.server.outbound_message import Message, NodeType
24
26
  from chia.server.server import ChiaServer
25
27
  from chia.server.ws_connection import ConnectionCallback, WSChiaConnection
26
28
  from chia.simulator.block_tools import make_unfinished_block
27
- from chia.types.blockchain_format.sized_bytes import bytes32
28
29
  from chia.types.full_block import FullBlock
29
30
  from chia.types.peer_info import PeerInfo
30
31
  from chia.types.validation_state import ValidationState
32
+ from chia.util.augmented_chain import AugmentedBlockchain
31
33
  from chia.util.config import load_config
32
- from chia.util.ints import uint16
33
34
 
34
35
 
35
36
  class ExitOnError(logging.Handler):
@@ -184,6 +185,7 @@ async def run_sync_test(
184
185
  worst_batch_height = None
185
186
  worst_batch_time_per_block = None
186
187
  peer_info = peer.get_peer_logging()
188
+ blockchain = AugmentedBlockchain(full_node.blockchain)
187
189
  async for r in rows:
188
190
  batch_start_time = time.monotonic()
189
191
  with enable_profiler(profile, height):
@@ -216,6 +218,7 @@ async def run_sync_test(
216
218
  peer_info,
217
219
  ForkInfo(fork_height, fork_height, header_hash),
218
220
  ValidationState(ssi, diff, None),
221
+ blockchain,
219
222
  )
220
223
  end_height = block_batch[-1].height
221
224
  full_node.blockchain.clean_block_record(end_height - full_node.constants.BLOCKS_CACHE_SIZE)
@@ -226,7 +229,7 @@ async def run_sync_test(
226
229
  assert summary is not None
227
230
 
228
231
  time_per_block = (time.monotonic() - batch_start_time) / len(block_batch)
229
- if not worst_batch_height or worst_batch_time_per_block > time_per_block:
232
+ if worst_batch_time_per_block is None or worst_batch_time_per_block > time_per_block:
230
233
  worst_batch_height = height
231
234
  worst_batch_time_per_block = time_per_block
232
235
 
@@ -31,9 +31,9 @@ def gen_ssl(suffix: str = "") -> None:
31
31
  captured_crt = cert_data
32
32
  captured_key = key_data
33
33
 
34
- print(f"{cert_path} = b\"\"\"{cert_data.decode(encoding='utf8')}\"\"\"")
34
+ print(f'{cert_path} = b"""{cert_data.decode(encoding="utf8")}"""')
35
35
  print()
36
- print(f"{key_path} = b\"\"\"{key_data.decode(encoding='utf8')}\"\"\"")
36
+ print(f'{key_path} = b"""{key_data.decode(encoding="utf8")}"""')
37
37
  print()
38
38
 
39
39
  patch = MonkeyPatch()
@@ -1,14 +1,15 @@
1
1
  from __future__ import annotations
2
2
 
3
+ from chia_rs import ConsensusConstants
4
+ from chia_rs.sized_bytes import bytes32
5
+ from chia_rs.sized_ints import uint32
6
+
3
7
  from chia._tests.util.get_name_puzzle_conditions import get_name_puzzle_conditions
4
- from chia.consensus.constants import ConsensusConstants
5
8
  from chia.consensus.default_constants import DEFAULT_CONSTANTS
6
9
  from chia.types.blockchain_format.coin import Coin
7
- from chia.types.blockchain_format.sized_bytes import bytes32
8
10
  from chia.types.full_block import FullBlock
9
11
  from chia.types.generator_types import BlockGenerator
10
12
  from chia.util.generator_tools import tx_removals_and_additions
11
- from chia.util.ints import uint32
12
13
 
13
14
 
14
15
  def run_and_get_removals_and_additions(
@@ -5,17 +5,17 @@ import logging
5
5
  from chia_rs import (
6
6
  DONT_VALIDATE_SIGNATURE,
7
7
  MEMPOOL_MODE,
8
+ ConsensusConstants,
8
9
  G2Element,
9
10
  get_flags_for_height_and_constants,
10
11
  run_block_generator,
11
12
  run_block_generator2,
12
13
  )
14
+ from chia_rs.sized_ints import uint16, uint32
13
15
 
14
- from chia.consensus.constants import ConsensusConstants
15
16
  from chia.consensus.cost_calculator import NPCResult
16
17
  from chia.types.generator_types import BlockGenerator
17
18
  from chia.util.errors import Err
18
- from chia.util.ints import uint16, uint32
19
19
 
20
20
  log = logging.getLogger(__name__)
21
21
 
chia/_tests/util/misc.py CHANGED
@@ -29,6 +29,8 @@ import pytest
29
29
  from _pytest.nodes import Node
30
30
  from aiohttp import web
31
31
  from chia_rs import Coin
32
+ from chia_rs.sized_bytes import bytes32
33
+ from chia_rs.sized_ints import uint16, uint32, uint64
32
34
 
33
35
  import chia
34
36
  import chia._tests
@@ -39,10 +41,8 @@ from chia.full_node.mempool import Mempool
39
41
  from chia.protocols.protocol_message_types import ProtocolMessageTypes
40
42
  from chia.server.api_protocol import ApiMetadata, ApiProtocol
41
43
  from chia.server.outbound_message import Message
42
- from chia.types.blockchain_format.sized_bytes import bytes32
43
44
  from chia.types.condition_opcodes import ConditionOpcode
44
45
  from chia.util.hash import std_hash
45
- from chia.util.ints import uint16, uint32, uint64
46
46
  from chia.util.network import WebServer
47
47
  from chia.wallet.util.compute_hints import HintedCoin
48
48
  from chia.wallet.wallet_node import WalletNode
@@ -482,6 +482,20 @@ def invariant_check_mempool(mempool: Mempool) -> None:
482
482
  val = cursor.fetchone()
483
483
  assert (mempool._total_cost, mempool._total_fee) == val
484
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()))
498
+
485
499
 
486
500
  async def wallet_height_at_least(wallet_node: WalletNode, h: uint32) -> bool:
487
501
  height = await wallet_node.wallet_state_manager.blockchain.get_finished_sync_up_to()
@@ -1,6 +1,21 @@
1
1
  from __future__ import annotations
2
2
 
3
- from chia_rs import G1Element, G2Element, RewardChainBlockUnfinished
3
+ from chia_rs import (
4
+ Foliage,
5
+ FoliageBlockData,
6
+ FoliageTransactionBlock,
7
+ G1Element,
8
+ G2Element,
9
+ PoolTarget,
10
+ RewardChainBlock,
11
+ RewardChainBlockUnfinished,
12
+ SubEpochChallengeSegment,
13
+ SubEpochData,
14
+ SubSlotData,
15
+ TransactionsInfo,
16
+ )
17
+ from chia_rs.sized_bytes import bytes32
18
+ from chia_rs.sized_ints import int16, uint8, uint16, uint32, uint64, uint128
4
19
 
5
20
  from chia.protocols import (
6
21
  farmer_protocol,
@@ -14,12 +29,8 @@ from chia.protocols import (
14
29
  from chia.protocols.shared_protocol import Error
15
30
  from chia.types.blockchain_format.classgroup import ClassgroupElement
16
31
  from chia.types.blockchain_format.coin import Coin
17
- from chia.types.blockchain_format.foliage import Foliage, FoliageBlockData, FoliageTransactionBlock, TransactionsInfo
18
- from chia.types.blockchain_format.pool_target import PoolTarget
19
32
  from chia.types.blockchain_format.proof_of_space import ProofOfSpace
20
- from chia.types.blockchain_format.reward_chain_block import RewardChainBlock
21
33
  from chia.types.blockchain_format.serialized_program import SerializedProgram
22
- from chia.types.blockchain_format.sized_bytes import bytes32
23
34
  from chia.types.blockchain_format.slots import (
24
35
  ChallengeChainSubSlot,
25
36
  InfusedChallengeChainSubSlot,
@@ -35,9 +46,8 @@ from chia.types.header_block import HeaderBlock
35
46
  from chia.types.peer_info import TimestampedPeerInfo
36
47
  from chia.types.spend_bundle import SpendBundle
37
48
  from chia.types.unfinished_block import UnfinishedBlock
38
- from chia.types.weight_proof import RecentChainData, SubEpochChallengeSegment, SubEpochData, SubSlotData, WeightProof
49
+ from chia.types.weight_proof import RecentChainData, WeightProof
39
50
  from chia.util.errors import Err
40
- from chia.util.ints import int16, uint8, uint16, uint32, uint64, uint128
41
51
 
42
52
  # SHARED PROTOCOL
43
53
  error_without_data = Error(int16(Err.UNKNOWN.value), "Unknown", None)
@@ -5,22 +5,20 @@ from dataclasses import dataclass
5
5
  from pathlib import Path
6
6
  from typing import Any
7
7
 
8
- from chia_rs import Coin
8
+ from chia_puzzles_py.programs import CHIALISP_DESERIALISATION
9
+ from chia_rs import Coin, ConsensusConstants
10
+ from chia_rs.sized_bytes import bytes32
11
+ from chia_rs.sized_ints import uint32, uint64
9
12
 
10
- from chia.consensus.constants import ConsensusConstants
13
+ from chia.types.blockchain_format.program import Program
11
14
  from chia.types.blockchain_format.serialized_program import SerializedProgram
12
- from chia.types.blockchain_format.sized_bytes import bytes32
13
15
  from chia.types.condition_opcodes import ConditionOpcode
14
16
  from chia.types.condition_with_args import ConditionWithArgs
15
17
  from chia.types.generator_types import BlockGenerator
16
- from chia.util.ints import uint32, uint64
17
18
  from chia.wallet.cat_wallet.cat_utils import match_cat_puzzle
18
- from chia.wallet.puzzles.load_clvm import load_serialized_clvm_maybe_recompile
19
19
  from chia.wallet.uncurried_puzzle import uncurry_puzzle
20
20
 
21
- DESERIALIZE_MOD = load_serialized_clvm_maybe_recompile(
22
- "chialisp_deserialisation.clsp", package_or_requirement="chia.consensus.puzzles"
23
- )
21
+ DESERIALIZE_MOD = Program.from_bytes(CHIALISP_DESERIALISATION)
24
22
 
25
23
 
26
24
  @dataclass