chia-blockchain 2.5.0rc1__py3-none-any.whl → 2.5.1__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 (637) hide show
  1. chia/_tests/README.md +1 -1
  2. chia/_tests/blockchain/blockchain_test_utils.py +24 -26
  3. chia/_tests/blockchain/test_augmented_chain.py +6 -8
  4. chia/_tests/blockchain/test_blockchain.py +409 -307
  5. chia/_tests/blockchain/test_blockchain_transactions.py +56 -75
  6. chia/_tests/blockchain/test_build_chains.py +11 -13
  7. chia/_tests/blockchain/test_get_block_generator.py +8 -8
  8. chia/_tests/blockchain/test_lookup_fork_chain.py +3 -4
  9. chia/_tests/build-init-files.py +3 -4
  10. chia/_tests/build-job-matrix.py +9 -9
  11. chia/_tests/check_sql_statements.py +2 -3
  12. chia/_tests/clvm/benchmark_costs.py +1 -1
  13. chia/_tests/clvm/coin_store.py +7 -5
  14. chia/_tests/clvm/test_chialisp_deserialization.py +8 -8
  15. chia/_tests/clvm/test_condition_codes.py +2 -2
  16. chia/_tests/clvm/test_curry_and_treehash.py +2 -4
  17. chia/_tests/clvm/test_message_conditions.py +184 -0
  18. chia/_tests/clvm/test_puzzle_compression.py +1 -2
  19. chia/_tests/clvm/test_puzzle_drivers.py +3 -3
  20. chia/_tests/clvm/test_puzzles.py +13 -18
  21. chia/_tests/clvm/test_singletons.py +17 -17
  22. chia/_tests/clvm/test_spend_sim.py +7 -7
  23. chia/_tests/cmds/cmd_test_utils.py +42 -45
  24. chia/_tests/cmds/conftest.py +2 -2
  25. chia/_tests/cmds/test_click_types.py +21 -16
  26. chia/_tests/cmds/test_cmd_framework.py +255 -35
  27. chia/_tests/cmds/test_cmds_util.py +2 -2
  28. chia/_tests/cmds/test_daemon.py +3 -3
  29. chia/_tests/cmds/test_dev_gh.py +131 -0
  30. chia/_tests/cmds/test_farm_cmd.py +1 -2
  31. chia/_tests/cmds/test_show.py +6 -6
  32. chia/_tests/cmds/test_tx_config_args.py +2 -1
  33. chia/_tests/cmds/wallet/test_dao.py +23 -23
  34. chia/_tests/cmds/wallet/test_did.py +29 -29
  35. chia/_tests/cmds/wallet/test_nft.py +24 -23
  36. chia/_tests/cmds/wallet/test_notifications.py +8 -8
  37. chia/_tests/cmds/wallet/test_tx_decorators.py +3 -3
  38. chia/_tests/cmds/wallet/test_vcs.py +97 -73
  39. chia/_tests/cmds/wallet/test_wallet.py +74 -75
  40. chia/_tests/cmds/wallet/test_wallet_check.py +5 -7
  41. chia/_tests/conftest.py +153 -38
  42. chia/_tests/connection_utils.py +7 -6
  43. chia/_tests/core/cmds/test_beta.py +3 -3
  44. chia/_tests/core/cmds/test_keys.py +6 -6
  45. chia/_tests/core/cmds/test_wallet.py +3 -3
  46. chia/_tests/core/consensus/test_block_creation.py +3 -5
  47. chia/_tests/core/custom_types/test_coin.py +1 -3
  48. chia/_tests/core/custom_types/test_spend_bundle.py +3 -4
  49. chia/_tests/core/daemon/test_daemon.py +58 -58
  50. chia/_tests/core/daemon/test_keychain_proxy.py +2 -1
  51. chia/_tests/core/data_layer/conftest.py +4 -3
  52. chia/_tests/core/data_layer/test_data_cli.py +1 -2
  53. chia/_tests/core/data_layer/test_data_layer.py +5 -5
  54. chia/_tests/core/data_layer/test_data_layer_util.py +8 -9
  55. chia/_tests/core/data_layer/test_data_rpc.py +75 -93
  56. chia/_tests/core/data_layer/test_data_store.py +38 -37
  57. chia/_tests/core/data_layer/test_data_store_schema.py +11 -11
  58. chia/_tests/core/data_layer/util.py +11 -10
  59. chia/_tests/core/farmer/test_farmer_api.py +6 -4
  60. chia/_tests/core/full_node/full_sync/test_full_sync.py +5 -10
  61. chia/_tests/core/full_node/ram_db.py +2 -2
  62. chia/_tests/core/full_node/stores/test_block_store.py +113 -11
  63. chia/_tests/core/full_node/stores/test_coin_store.py +37 -28
  64. chia/_tests/core/full_node/stores/test_full_node_store.py +34 -30
  65. chia/_tests/core/full_node/stores/test_hint_store.py +3 -4
  66. chia/_tests/core/full_node/test_address_manager.py +2 -2
  67. chia/_tests/core/full_node/test_block_height_map.py +1 -1
  68. chia/_tests/core/full_node/test_conditions.py +10 -12
  69. chia/_tests/core/full_node/test_full_node.py +2077 -1822
  70. chia/_tests/core/full_node/test_generator_tools.py +4 -4
  71. chia/_tests/core/full_node/test_hint_management.py +2 -2
  72. chia/_tests/core/full_node/test_performance.py +2 -5
  73. chia/_tests/core/full_node/test_subscriptions.py +4 -4
  74. chia/_tests/core/full_node/test_tx_processing_queue.py +5 -4
  75. chia/_tests/core/make_block_generator.py +5 -7
  76. chia/_tests/core/mempool/test_mempool.py +205 -208
  77. chia/_tests/core/mempool/test_mempool_fee_protocol.py +5 -5
  78. chia/_tests/core/mempool/test_mempool_item_queries.py +2 -4
  79. chia/_tests/core/mempool/test_mempool_manager.py +109 -80
  80. chia/_tests/core/mempool/test_mempool_performance.py +3 -4
  81. chia/_tests/core/mempool/test_singleton_fast_forward.py +12 -12
  82. chia/_tests/core/server/flood.py +6 -4
  83. chia/_tests/core/server/serve.py +10 -7
  84. chia/_tests/core/server/test_api_protocol.py +21 -0
  85. chia/_tests/core/server/test_capabilities.py +3 -5
  86. chia/_tests/core/server/test_dos.py +15 -16
  87. chia/_tests/core/server/test_loop.py +14 -10
  88. chia/_tests/core/server/test_node_discovery.py +1 -2
  89. chia/_tests/core/server/test_rate_limits.py +156 -44
  90. chia/_tests/core/server/test_server.py +8 -7
  91. chia/_tests/core/services/test_services.py +59 -37
  92. chia/_tests/core/ssl/test_ssl.py +5 -3
  93. chia/_tests/core/test_cost_calculation.py +5 -6
  94. chia/_tests/core/test_crawler.py +2 -2
  95. chia/_tests/core/test_db_conversion.py +5 -4
  96. chia/_tests/core/test_db_validation.py +6 -5
  97. chia/_tests/core/test_farmer_harvester_rpc.py +8 -7
  98. chia/_tests/core/test_filter.py +3 -5
  99. chia/_tests/core/test_full_node_rpc.py +64 -90
  100. chia/_tests/core/test_merkle_set.py +10 -10
  101. chia/_tests/core/test_program.py +2 -4
  102. chia/_tests/core/test_rpc_util.py +1 -2
  103. chia/_tests/core/test_seeder.py +124 -12
  104. chia/_tests/core/util/test_block_cache.py +5 -5
  105. chia/_tests/core/util/test_cached_bls.py +3 -3
  106. chia/_tests/core/util/test_config.py +13 -13
  107. chia/_tests/core/util/test_files.py +2 -2
  108. chia/_tests/core/util/test_jsonify.py +9 -9
  109. chia/_tests/core/util/test_keychain.py +13 -5
  110. chia/_tests/core/util/test_keyring_wrapper.py +6 -5
  111. chia/_tests/core/util/test_log_exceptions.py +3 -3
  112. chia/_tests/core/util/test_streamable.py +38 -38
  113. chia/_tests/db/test_db_wrapper.py +13 -12
  114. chia/_tests/environments/common.py +2 -2
  115. chia/_tests/environments/full_node.py +2 -2
  116. chia/_tests/environments/wallet.py +109 -48
  117. chia/_tests/farmer_harvester/test_farmer.py +35 -35
  118. chia/_tests/farmer_harvester/test_farmer_harvester.py +17 -17
  119. chia/_tests/farmer_harvester/test_filter_prefix_bits.py +6 -5
  120. chia/_tests/farmer_harvester/test_third_party_harvesters.py +73 -46
  121. chia/_tests/fee_estimation/test_fee_estimation_integration.py +8 -8
  122. chia/_tests/fee_estimation/test_fee_estimation_rpc.py +47 -47
  123. chia/_tests/fee_estimation/test_fee_estimation_unit_tests.py +6 -7
  124. chia/_tests/fee_estimation/test_mempoolitem_height_added.py +11 -11
  125. chia/_tests/generator/test_compression.py +13 -30
  126. chia/_tests/generator/test_generator_types.py +3 -3
  127. chia/_tests/generator/test_rom.py +7 -9
  128. chia/_tests/plot_sync/test_delta.py +2 -3
  129. chia/_tests/plot_sync/test_plot_sync.py +25 -24
  130. chia/_tests/plot_sync/test_receiver.py +9 -9
  131. chia/_tests/plot_sync/test_sender.py +1 -1
  132. chia/_tests/plot_sync/test_sync_simulated.py +27 -26
  133. chia/_tests/plot_sync/util.py +2 -1
  134. chia/_tests/plotting/test_plot_manager.py +54 -11
  135. chia/_tests/plotting/util.py +2 -3
  136. chia/_tests/pools/test_pool_cli_parsing.py +128 -0
  137. chia/_tests/pools/test_pool_cmdline.py +993 -15
  138. chia/_tests/pools/test_pool_config.py +3 -5
  139. chia/_tests/pools/test_pool_puzzles_lifecycle.py +10 -11
  140. chia/_tests/pools/test_pool_rpc.py +203 -90
  141. chia/_tests/pools/test_pool_wallet.py +12 -8
  142. chia/_tests/pools/test_wallet_pool_store.py +3 -3
  143. chia/_tests/process_junit.py +16 -17
  144. chia/_tests/rpc/test_rpc_client.py +59 -2
  145. chia/_tests/rpc/test_rpc_server.py +183 -0
  146. chia/_tests/simulation/test_simulation.py +5 -5
  147. chia/_tests/simulation/test_simulator.py +8 -10
  148. chia/_tests/simulation/test_start_simulator.py +5 -4
  149. chia/_tests/timelord/test_new_peak.py +19 -19
  150. chia/_tests/tools/test_run_block.py +1 -2
  151. chia/_tests/tools/test_virtual_project.py +591 -0
  152. chia/_tests/util/benchmark_cost.py +9 -9
  153. chia/_tests/util/benchmarks.py +1 -2
  154. chia/_tests/util/blockchain.py +12 -11
  155. chia/_tests/util/blockchain_mock.py +15 -15
  156. chia/_tests/util/build_network_protocol_files.py +12 -12
  157. chia/_tests/util/db_connection.py +3 -2
  158. chia/_tests/util/full_sync.py +14 -6
  159. chia/_tests/util/gen_ssl_certs.py +4 -5
  160. chia/_tests/util/generator_tools_testing.py +5 -7
  161. chia/_tests/util/get_name_puzzle_conditions.py +52 -0
  162. chia/_tests/util/key_tool.py +2 -3
  163. chia/_tests/util/misc.py +59 -106
  164. chia/_tests/util/network_protocol_data.py +7 -9
  165. chia/_tests/util/protocol_messages_json.py +112 -111
  166. chia/_tests/util/rpc.py +3 -0
  167. chia/_tests/util/run_block.py +16 -16
  168. chia/_tests/util/setup_nodes.py +25 -23
  169. chia/{clvm → _tests/util}/spend_sim.py +59 -55
  170. chia/_tests/util/split_managers.py +12 -9
  171. chia/_tests/util/temp_file.py +1 -1
  172. chia/_tests/util/test_action_scope.py +2 -1
  173. chia/_tests/util/test_async_pool.py +8 -8
  174. chia/_tests/util/test_build_job_matrix.py +2 -3
  175. chia/_tests/util/test_condition_tools.py +4 -6
  176. chia/_tests/util/test_config.py +5 -5
  177. chia/_tests/util/test_dump_keyring.py +1 -1
  178. chia/_tests/util/test_full_block_utils.py +19 -11
  179. chia/_tests/util/test_limited_semaphore.py +4 -3
  180. chia/_tests/util/test_logging_filter.py +2 -3
  181. chia/_tests/util/test_misc.py +29 -28
  182. chia/_tests/util/test_network.py +32 -31
  183. chia/_tests/util/test_network_protocol_files.py +2 -3
  184. chia/_tests/util/test_network_protocol_json.py +1 -0
  185. chia/_tests/util/test_network_protocol_test.py +18 -19
  186. chia/_tests/util/test_paginator.py +3 -4
  187. chia/_tests/util/test_pprint.py +1 -1
  188. chia/_tests/util/test_priority_mutex.py +18 -17
  189. chia/_tests/util/test_recursive_replace.py +2 -2
  190. chia/_tests/util/test_testnet_overrides.py +3 -3
  191. chia/_tests/util/test_timing.py +1 -1
  192. chia/_tests/util/test_trusted_peer.py +2 -2
  193. chia/_tests/util/time_out_assert.py +43 -6
  194. chia/_tests/wallet/cat_wallet/test_cat_lifecycle.py +13 -13
  195. chia/_tests/wallet/cat_wallet/test_cat_outer_puzzle.py +1 -1
  196. chia/_tests/wallet/cat_wallet/test_cat_wallet.py +117 -29
  197. chia/_tests/wallet/cat_wallet/test_offer_lifecycle.py +15 -15
  198. chia/_tests/wallet/cat_wallet/test_trades.py +50 -28
  199. chia/_tests/wallet/clawback/test_clawback_decorator.py +3 -5
  200. chia/_tests/wallet/clawback/test_clawback_lifecycle.py +6 -6
  201. chia/_tests/wallet/clawback/test_clawback_metadata.py +1 -2
  202. chia/_tests/wallet/conftest.py +135 -74
  203. chia/_tests/wallet/dao_wallet/test_dao_clvm.py +25 -17
  204. chia/_tests/wallet/dao_wallet/test_dao_wallets.py +75 -75
  205. chia/_tests/wallet/db_wallet/test_db_graftroot.py +10 -12
  206. chia/_tests/wallet/db_wallet/test_dl_offers.py +6 -6
  207. chia/_tests/wallet/db_wallet/test_dl_wallet.py +18 -18
  208. chia/_tests/wallet/did_wallet/test_did.py +1277 -474
  209. chia/_tests/wallet/nft_wallet/test_nft_1_offers.py +12 -11
  210. chia/_tests/wallet/nft_wallet/test_nft_bulk_mint.py +115 -105
  211. chia/_tests/wallet/nft_wallet/test_nft_lifecycle.py +6 -7
  212. chia/_tests/wallet/nft_wallet/test_nft_offers.py +16 -16
  213. chia/_tests/wallet/nft_wallet/test_nft_puzzles.py +3 -3
  214. chia/_tests/wallet/nft_wallet/test_nft_wallet.py +38 -12
  215. chia/_tests/wallet/nft_wallet/test_ownership_outer_puzzle.py +1 -1
  216. chia/_tests/wallet/rpc/test_dl_wallet_rpc.py +31 -33
  217. chia/_tests/wallet/rpc/test_wallet_rpc.py +218 -171
  218. chia/_tests/wallet/simple_sync/test_simple_sync_protocol.py +36 -37
  219. chia/_tests/wallet/sync/test_wallet_sync.py +241 -78
  220. chia/_tests/wallet/test_address_type.py +20 -20
  221. chia/_tests/wallet/test_clvm_streamable.py +5 -5
  222. chia/_tests/wallet/test_coin_management.py +354 -0
  223. chia/_tests/wallet/test_coin_selection.py +34 -35
  224. chia/_tests/wallet/test_conditions.py +28 -16
  225. chia/_tests/wallet/test_debug_spend_bundle.py +156 -14
  226. chia/_tests/wallet/test_new_wallet_protocol.py +29 -31
  227. chia/_tests/wallet/test_nft_store.py +1 -2
  228. chia/_tests/wallet/test_notifications.py +2 -2
  229. chia/_tests/wallet/test_offer_parsing_performance.py +1 -1
  230. chia/_tests/wallet/test_puzzle_store.py +2 -3
  231. chia/_tests/wallet/test_sign_coin_spends.py +3 -3
  232. chia/_tests/wallet/test_signer_protocol.py +33 -34
  233. chia/_tests/wallet/test_singleton_lifecycle_fast.py +29 -29
  234. chia/_tests/wallet/test_taproot.py +1 -1
  235. chia/_tests/wallet/test_transaction_store.py +23 -19
  236. chia/_tests/wallet/test_util.py +36 -32
  237. chia/_tests/wallet/test_wallet.py +37 -37
  238. chia/_tests/wallet/test_wallet_action_scope.py +8 -8
  239. chia/_tests/wallet/test_wallet_blockchain.py +4 -6
  240. chia/_tests/wallet/test_wallet_coin_store.py +34 -34
  241. chia/_tests/wallet/test_wallet_node.py +69 -72
  242. chia/_tests/wallet/test_wallet_retry.py +3 -3
  243. chia/_tests/wallet/test_wallet_state_manager.py +12 -5
  244. chia/_tests/wallet/test_wallet_trade_store.py +2 -2
  245. chia/_tests/wallet/test_wallet_utils.py +5 -4
  246. chia/_tests/wallet/vc_wallet/test_cr_outer_puzzle.py +3 -3
  247. chia/_tests/wallet/vc_wallet/test_vc_lifecycle.py +18 -18
  248. chia/_tests/wallet/vc_wallet/test_vc_wallet.py +69 -40
  249. chia/_tests/wallet/wallet_block_tools.py +27 -27
  250. chia/_tests/weight_proof/test_weight_proof.py +30 -30
  251. chia/apis.py +19 -0
  252. chia/cmds/beta.py +8 -7
  253. chia/cmds/beta_funcs.py +15 -11
  254. chia/cmds/check_wallet_db.py +29 -27
  255. chia/cmds/chia.py +17 -9
  256. chia/cmds/cmd_classes.py +87 -79
  257. chia/cmds/cmd_helpers.py +242 -0
  258. chia/cmds/cmds_util.py +56 -66
  259. chia/cmds/coin_funcs.py +168 -153
  260. chia/cmds/coins.py +156 -194
  261. chia/cmds/configure.py +4 -3
  262. chia/cmds/dao.py +89 -33
  263. chia/cmds/dao_funcs.py +55 -33
  264. chia/cmds/data.py +7 -6
  265. chia/cmds/data_funcs.py +26 -21
  266. chia/cmds/db.py +4 -3
  267. chia/cmds/db_backup_func.py +2 -2
  268. chia/cmds/db_upgrade_func.py +3 -3
  269. chia/cmds/db_validate_func.py +2 -2
  270. chia/cmds/dev.py +2 -0
  271. chia/cmds/farm.py +18 -5
  272. chia/cmds/farm_funcs.py +17 -24
  273. chia/cmds/gh.py +275 -0
  274. chia/cmds/init.py +4 -11
  275. chia/cmds/init_funcs.py +9 -9
  276. chia/cmds/installers.py +5 -3
  277. chia/cmds/keys.py +56 -39
  278. chia/cmds/keys_funcs.py +30 -31
  279. chia/cmds/netspace.py +6 -3
  280. chia/cmds/netspace_funcs.py +3 -2
  281. chia/cmds/param_types.py +16 -6
  282. chia/cmds/passphrase.py +8 -7
  283. chia/cmds/passphrase_funcs.py +7 -61
  284. chia/cmds/peer.py +2 -1
  285. chia/cmds/peer_funcs.py +5 -5
  286. chia/cmds/plotnft.py +207 -153
  287. chia/cmds/plotnft_funcs.py +205 -174
  288. chia/cmds/plots.py +14 -6
  289. chia/cmds/plotters.py +2 -1
  290. chia/cmds/rpc.py +48 -28
  291. chia/cmds/show.py +2 -1
  292. chia/cmds/show_funcs.py +7 -6
  293. chia/cmds/signer.py +50 -58
  294. chia/cmds/sim.py +22 -14
  295. chia/cmds/sim_funcs.py +11 -11
  296. chia/cmds/start.py +3 -3
  297. chia/cmds/start_funcs.py +9 -12
  298. chia/cmds/stop.py +4 -3
  299. chia/cmds/units.py +1 -3
  300. chia/cmds/wallet.py +252 -96
  301. chia/cmds/wallet_funcs.py +217 -143
  302. chia/consensus/block_body_validation.py +133 -86
  303. chia/consensus/block_creation.py +42 -21
  304. chia/consensus/block_header_validation.py +32 -37
  305. chia/consensus/block_record.py +1 -2
  306. chia/consensus/blockchain.py +167 -180
  307. chia/consensus/blockchain_interface.py +10 -10
  308. chia/consensus/constants.py +2 -2
  309. chia/consensus/default_constants.py +3 -4
  310. chia/consensus/difficulty_adjustment.py +5 -5
  311. chia/consensus/find_fork_point.py +5 -5
  312. chia/consensus/full_block_to_block_record.py +4 -4
  313. chia/consensus/get_block_challenge.py +2 -2
  314. chia/consensus/get_block_generator.py +4 -3
  315. chia/consensus/multiprocess_validation.py +207 -304
  316. chia/consensus/vdf_info_computation.py +3 -3
  317. chia/daemon/client.py +46 -27
  318. chia/daemon/keychain_proxy.py +10 -9
  319. chia/daemon/keychain_server.py +18 -18
  320. chia/daemon/server.py +103 -113
  321. chia/daemon/windows_signal.py +2 -2
  322. chia/data_layer/data_layer.py +64 -76
  323. chia/data_layer/data_layer_api.py +8 -0
  324. chia/data_layer/data_layer_errors.py +3 -3
  325. chia/data_layer/data_layer_server.py +2 -2
  326. chia/data_layer/data_layer_util.py +71 -71
  327. chia/data_layer/data_layer_wallet.py +63 -67
  328. chia/data_layer/data_store.py +72 -72
  329. chia/data_layer/dl_wallet_store.py +10 -10
  330. chia/data_layer/download_data.py +5 -5
  331. chia/data_layer/s3_plugin_service.py +9 -9
  332. chia/data_layer/util/benchmark.py +0 -1
  333. chia/data_layer/util/plugin.py +2 -3
  334. chia/farmer/farmer.py +46 -43
  335. chia/farmer/farmer_api.py +27 -21
  336. chia/full_node/block_height_map.py +6 -6
  337. chia/full_node/block_store.py +41 -35
  338. chia/full_node/coin_store.py +42 -41
  339. chia/full_node/fee_estimate.py +2 -2
  340. chia/full_node/fee_estimation.py +1 -2
  341. chia/full_node/fee_history.py +5 -6
  342. chia/full_node/fee_tracker.py +24 -24
  343. chia/full_node/full_node.py +574 -300
  344. chia/full_node/full_node_api.py +181 -130
  345. chia/full_node/full_node_store.py +43 -43
  346. chia/full_node/hint_management.py +4 -4
  347. chia/full_node/hint_store.py +9 -10
  348. chia/full_node/mempool.py +25 -19
  349. chia/full_node/mempool_check_conditions.py +11 -42
  350. chia/full_node/mempool_manager.py +48 -53
  351. chia/full_node/pending_tx_cache.py +9 -9
  352. chia/full_node/subscriptions.py +23 -24
  353. chia/full_node/sync_store.py +8 -7
  354. chia/full_node/tx_processing_queue.py +3 -3
  355. chia/full_node/util/__init__.py +0 -0
  356. chia/full_node/weight_proof.py +79 -78
  357. chia/harvester/harvester.py +9 -8
  358. chia/harvester/harvester_api.py +19 -13
  359. chia/introducer/introducer.py +7 -5
  360. chia/introducer/introducer_api.py +9 -3
  361. chia/legacy/keyring.py +6 -5
  362. chia/plot_sync/delta.py +8 -8
  363. chia/plot_sync/receiver.py +12 -11
  364. chia/plot_sync/sender.py +15 -12
  365. chia/plotters/bladebit.py +12 -12
  366. chia/plotters/chiapos.py +2 -2
  367. chia/plotters/madmax.py +8 -8
  368. chia/plotters/plotters.py +6 -6
  369. chia/plotters/plotters_util.py +6 -4
  370. chia/plotting/cache.py +8 -7
  371. chia/plotting/check_plots.py +8 -8
  372. chia/plotting/create_plots.py +6 -6
  373. chia/plotting/manager.py +22 -22
  374. chia/plotting/util.py +31 -19
  375. chia/pools/pool_config.py +7 -7
  376. chia/pools/pool_puzzles.py +16 -16
  377. chia/pools/pool_wallet.py +64 -57
  378. chia/pools/pool_wallet_info.py +3 -3
  379. chia/protocols/full_node_protocol.py +3 -3
  380. chia/protocols/harvester_protocol.py +12 -12
  381. chia/protocols/introducer_protocol.py +1 -2
  382. chia/protocols/protocol_message_types.py +4 -4
  383. chia/protocols/protocol_state_machine.py +2 -2
  384. chia/protocols/protocol_timing.py +1 -0
  385. chia/protocols/shared_protocol.py +3 -3
  386. chia/protocols/timelord_protocol.py +2 -2
  387. chia/protocols/wallet_protocol.py +33 -33
  388. chia/rpc/crawler_rpc_api.py +12 -7
  389. chia/rpc/data_layer_rpc_api.py +49 -44
  390. chia/rpc/data_layer_rpc_client.py +41 -41
  391. chia/rpc/data_layer_rpc_util.py +7 -11
  392. chia/rpc/farmer_rpc_api.py +32 -27
  393. chia/rpc/farmer_rpc_client.py +14 -14
  394. chia/rpc/full_node_rpc_api.py +53 -48
  395. chia/rpc/full_node_rpc_client.py +30 -30
  396. chia/rpc/harvester_rpc_api.py +16 -11
  397. chia/rpc/harvester_rpc_client.py +6 -6
  398. chia/rpc/rpc_client.py +34 -14
  399. chia/rpc/rpc_server.py +117 -43
  400. chia/rpc/timelord_rpc_api.py +9 -4
  401. chia/rpc/util.py +11 -211
  402. chia/rpc/wallet_request_types.py +276 -60
  403. chia/rpc/wallet_rpc_api.py +563 -399
  404. chia/rpc/wallet_rpc_client.py +220 -250
  405. chia/seeder/crawl_store.py +6 -8
  406. chia/seeder/crawler.py +23 -36
  407. chia/seeder/crawler_api.py +28 -22
  408. chia/seeder/dns_server.py +99 -50
  409. chia/seeder/start_crawler.py +13 -9
  410. chia/server/address_manager.py +19 -19
  411. chia/server/address_manager_store.py +17 -17
  412. chia/server/api_protocol.py +106 -1
  413. chia/server/capabilities.py +3 -3
  414. chia/server/chia_policy.py +17 -16
  415. chia/server/introducer_peers.py +3 -3
  416. chia/server/node_discovery.py +34 -38
  417. chia/server/rate_limit_numbers.py +26 -16
  418. chia/server/rate_limits.py +67 -27
  419. chia/server/server.py +52 -31
  420. chia/server/signal_handlers.py +6 -3
  421. chia/server/ssl_context.py +5 -5
  422. chia/server/start_data_layer.py +37 -23
  423. chia/server/start_farmer.py +28 -16
  424. chia/server/start_full_node.py +29 -23
  425. chia/server/start_harvester.py +28 -15
  426. chia/server/start_introducer.py +27 -15
  427. chia/server/start_service.py +17 -29
  428. chia/server/start_timelord.py +25 -18
  429. chia/server/start_wallet.py +22 -18
  430. chia/server/upnp.py +4 -3
  431. chia/server/ws_connection.py +68 -54
  432. chia/simulator/add_blocks_in_batches.py +54 -0
  433. chia/simulator/block_tools.py +65 -64
  434. chia/simulator/full_node_simulator.py +66 -74
  435. chia/simulator/setup_services.py +10 -9
  436. chia/simulator/simulator_full_node_rpc_api.py +12 -14
  437. chia/simulator/simulator_full_node_rpc_client.py +3 -5
  438. chia/simulator/simulator_test_tools.py +8 -7
  439. chia/simulator/socket.py +1 -4
  440. chia/simulator/ssl_certs.py +5 -5
  441. chia/simulator/ssl_certs_1.py +2 -4
  442. chia/simulator/ssl_certs_10.py +2 -4
  443. chia/simulator/ssl_certs_2.py +2 -4
  444. chia/simulator/ssl_certs_3.py +2 -4
  445. chia/simulator/ssl_certs_4.py +2 -4
  446. chia/simulator/ssl_certs_5.py +2 -4
  447. chia/simulator/ssl_certs_6.py +2 -4
  448. chia/simulator/ssl_certs_7.py +2 -4
  449. chia/simulator/ssl_certs_8.py +2 -4
  450. chia/simulator/ssl_certs_9.py +2 -4
  451. chia/simulator/start_simulator.py +14 -6
  452. chia/simulator/wallet_tools.py +21 -20
  453. chia/ssl/create_ssl.py +11 -11
  454. chia/timelord/iters_from_block.py +2 -2
  455. chia/timelord/timelord.py +57 -33
  456. chia/timelord/timelord_api.py +12 -6
  457. chia/timelord/timelord_launcher.py +10 -8
  458. chia/timelord/timelord_state.py +5 -5
  459. chia/types/block_protocol.py +2 -2
  460. chia/types/blockchain_format/coin.py +3 -3
  461. chia/types/blockchain_format/program.py +17 -18
  462. chia/types/blockchain_format/tree_hash.py +9 -9
  463. chia/types/coin_spend.py +8 -8
  464. chia/types/condition_with_args.py +1 -2
  465. chia/types/eligible_coin_spends.py +16 -15
  466. chia/types/generator_types.py +1 -2
  467. chia/types/internal_mempool_item.py +1 -2
  468. chia/types/mempool_item.py +7 -7
  469. chia/types/mempool_submission_status.py +2 -2
  470. chia/types/peer_info.py +1 -1
  471. chia/types/spend_bundle.py +1 -2
  472. chia/types/transaction_queue_entry.py +2 -2
  473. chia/types/unfinished_header_block.py +2 -2
  474. chia/types/validation_state.py +14 -0
  475. chia/types/weight_proof.py +5 -6
  476. chia/util/action_scope.py +8 -8
  477. chia/util/async_pool.py +6 -4
  478. chia/util/augmented_chain.py +13 -9
  479. chia/util/batches.py +5 -2
  480. chia/util/bech32m.py +14 -11
  481. chia/util/beta_metrics.py +5 -4
  482. chia/util/block_cache.py +5 -5
  483. chia/util/byte_types.py +2 -0
  484. chia/util/check_fork_next_block.py +3 -2
  485. chia/util/chia_logging.py +41 -21
  486. chia/util/collection.py +3 -3
  487. chia/util/condition_tools.py +18 -18
  488. chia/util/config.py +26 -25
  489. chia/util/cpu.py +2 -0
  490. chia/util/db_synchronous.py +2 -0
  491. chia/util/db_version.py +2 -0
  492. chia/util/db_wrapper.py +13 -10
  493. chia/util/default_root.py +17 -0
  494. chia/util/dump_keyring.py +6 -6
  495. chia/util/errors.py +5 -3
  496. chia/util/file_keyring.py +22 -33
  497. chia/util/files.py +2 -0
  498. chia/util/full_block_utils.py +31 -7
  499. chia/util/generator_tools.py +18 -8
  500. chia/util/hash.py +3 -1
  501. chia/util/initial-config.yaml +19 -0
  502. chia/util/inline_executor.py +2 -0
  503. chia/util/ip_address.py +39 -0
  504. chia/util/json_util.py +0 -4
  505. chia/util/keychain.py +27 -24
  506. chia/util/keyring_wrapper.py +65 -4
  507. chia/util/limited_semaphore.py +3 -1
  508. chia/util/lock.py +4 -2
  509. chia/util/log_exceptions.py +5 -2
  510. chia/util/logging.py +3 -1
  511. chia/util/lru_cache.py +2 -0
  512. chia/util/math.py +4 -4
  513. chia/util/network.py +15 -73
  514. chia/util/paginator.py +3 -1
  515. chia/util/path.py +2 -0
  516. chia/util/permissions.py +3 -2
  517. chia/util/prev_transaction_block.py +1 -3
  518. chia/util/priority_mutex.py +6 -3
  519. chia/util/profiler.py +7 -4
  520. chia/util/recursive_replace.py +2 -0
  521. chia/util/safe_cancel_task.py +2 -0
  522. chia/util/service_groups.py +2 -2
  523. chia/util/setproctitle.py +2 -0
  524. chia/util/significant_bits.py +2 -0
  525. chia/util/ssl_check.py +11 -11
  526. chia/util/streamable.py +44 -56
  527. chia/util/task_referencer.py +59 -0
  528. chia/util/task_timing.py +22 -18
  529. chia/util/timing.py +4 -1
  530. chia/util/vdf_prover.py +2 -3
  531. chia/util/virtual_project_analysis.py +540 -0
  532. chia/util/ws_message.py +6 -6
  533. chia/wallet/cat_wallet/cat_info.py +3 -3
  534. chia/wallet/cat_wallet/cat_outer_puzzle.py +3 -3
  535. chia/wallet/cat_wallet/cat_utils.py +5 -4
  536. chia/wallet/cat_wallet/cat_wallet.py +56 -70
  537. chia/wallet/cat_wallet/dao_cat_info.py +3 -3
  538. chia/wallet/cat_wallet/dao_cat_wallet.py +18 -18
  539. chia/wallet/cat_wallet/lineage_store.py +2 -2
  540. chia/wallet/coin_selection.py +15 -15
  541. chia/wallet/conditions.py +257 -71
  542. chia/wallet/dao_wallet/dao_info.py +4 -4
  543. chia/wallet/dao_wallet/dao_utils.py +43 -42
  544. chia/wallet/dao_wallet/dao_wallet.py +66 -68
  545. chia/wallet/db_wallet/db_wallet_puzzles.py +12 -8
  546. chia/wallet/derive_keys.py +11 -11
  547. chia/wallet/did_wallet/did_info.py +3 -3
  548. chia/wallet/did_wallet/did_wallet.py +56 -47
  549. chia/wallet/did_wallet/did_wallet_puzzles.py +7 -6
  550. chia/wallet/lineage_proof.py +4 -4
  551. chia/wallet/nft_wallet/metadata_outer_puzzle.py +2 -2
  552. chia/wallet/nft_wallet/nft_info.py +4 -4
  553. chia/wallet/nft_wallet/nft_puzzles.py +16 -16
  554. chia/wallet/nft_wallet/nft_wallet.py +90 -89
  555. chia/wallet/nft_wallet/ownership_outer_puzzle.py +2 -2
  556. chia/wallet/nft_wallet/singleton_outer_puzzle.py +2 -2
  557. chia/wallet/nft_wallet/transfer_program_puzzle.py +2 -2
  558. chia/wallet/nft_wallet/uncurry_nft.py +2 -2
  559. chia/wallet/notification_manager.py +5 -5
  560. chia/wallet/notification_store.py +6 -6
  561. chia/wallet/outer_puzzles.py +2 -2
  562. chia/wallet/payment.py +4 -5
  563. chia/wallet/puzzle_drivers.py +4 -4
  564. chia/wallet/puzzles/clawback/drivers.py +5 -5
  565. chia/wallet/puzzles/clawback/puzzle_decorator.py +7 -7
  566. chia/wallet/puzzles/load_clvm.py +2 -3
  567. chia/wallet/puzzles/p2_conditions.py +1 -2
  568. chia/wallet/puzzles/p2_delegated_conditions.py +1 -2
  569. chia/wallet/puzzles/p2_delegated_puzzle.py +2 -3
  570. chia/wallet/puzzles/p2_delegated_puzzle_or_hidden_puzzle.py +3 -4
  571. chia/wallet/puzzles/p2_m_of_n_delegate_direct.py +1 -2
  572. chia/wallet/puzzles/p2_puzzle_hash.py +1 -2
  573. chia/wallet/puzzles/puzzle_utils.py +7 -7
  574. chia/wallet/puzzles/singleton_top_layer.py +6 -5
  575. chia/wallet/puzzles/singleton_top_layer_v1_1.py +6 -5
  576. chia/wallet/puzzles/tails.py +34 -30
  577. chia/wallet/signer_protocol.py +7 -8
  578. chia/wallet/singleton.py +4 -4
  579. chia/wallet/trade_manager.py +155 -141
  580. chia/wallet/trade_record.py +5 -5
  581. chia/wallet/trading/offer.py +100 -101
  582. chia/wallet/trading/trade_store.py +14 -14
  583. chia/wallet/transaction_record.py +31 -16
  584. chia/wallet/util/address_type.py +4 -4
  585. chia/wallet/util/blind_signer_tl.py +8 -12
  586. chia/wallet/util/clvm_streamable.py +15 -15
  587. chia/wallet/util/compute_hints.py +5 -5
  588. chia/wallet/util/compute_memos.py +4 -6
  589. chia/wallet/util/curry_and_treehash.py +3 -2
  590. chia/wallet/util/debug_spend_bundle.py +6 -8
  591. chia/wallet/util/merkle_tree.py +10 -10
  592. chia/wallet/util/merkle_utils.py +10 -10
  593. chia/wallet/util/new_peak_queue.py +3 -3
  594. chia/wallet/util/peer_request_cache.py +8 -8
  595. chia/{util → wallet/util}/pprint.py +2 -3
  596. chia/wallet/util/puzzle_compression.py +3 -4
  597. chia/wallet/util/puzzle_decorator.py +10 -10
  598. chia/wallet/util/query_filter.py +9 -10
  599. chia/wallet/util/tx_config.py +12 -12
  600. chia/wallet/util/wallet_sync_utils.py +24 -21
  601. chia/wallet/util/wallet_types.py +9 -2
  602. chia/wallet/vc_wallet/cr_cat_drivers.py +28 -27
  603. chia/wallet/vc_wallet/cr_cat_wallet.py +42 -40
  604. chia/wallet/vc_wallet/cr_outer_puzzle.py +4 -4
  605. chia/wallet/vc_wallet/vc_drivers.py +16 -16
  606. chia/wallet/vc_wallet/vc_store.py +9 -9
  607. chia/wallet/vc_wallet/vc_wallet.py +35 -35
  608. chia/wallet/wallet.py +54 -54
  609. chia/wallet/wallet_action_scope.py +14 -13
  610. chia/wallet/wallet_blockchain.py +10 -10
  611. chia/wallet/wallet_coin_record.py +2 -2
  612. chia/wallet/wallet_coin_store.py +10 -10
  613. chia/wallet/wallet_info.py +1 -2
  614. chia/wallet/wallet_interested_store.py +5 -5
  615. chia/wallet/wallet_nft_store.py +6 -6
  616. chia/wallet/wallet_node.py +72 -76
  617. chia/wallet/wallet_node_api.py +33 -27
  618. chia/wallet/wallet_pool_store.py +1 -2
  619. chia/wallet/wallet_protocol.py +15 -15
  620. chia/wallet/wallet_puzzle_store.py +35 -4
  621. chia/wallet/wallet_retry_store.py +2 -2
  622. chia/wallet/wallet_singleton_store.py +10 -9
  623. chia/wallet/wallet_spend_bundle.py +4 -20
  624. chia/wallet/wallet_state_manager.py +223 -224
  625. chia/wallet/wallet_transaction_store.py +44 -18
  626. chia/wallet/wallet_user_store.py +2 -2
  627. chia/wallet/wallet_weight_proof_handler.py +2 -2
  628. {chia_blockchain-2.5.0rc1.dist-info → chia_blockchain-2.5.1.dist-info}/LICENSE +1 -1
  629. {chia_blockchain-2.5.0rc1.dist-info → chia_blockchain-2.5.1.dist-info}/METADATA +67 -72
  630. chia_blockchain-2.5.1.dist-info/RECORD +1042 -0
  631. {chia_blockchain-2.5.0rc1.dist-info → chia_blockchain-2.5.1.dist-info}/WHEEL +1 -1
  632. mozilla-ca/cacert.pem +32 -87
  633. chia/_tests/cmds/wallet/test_coins.py +0 -195
  634. chia/consensus/block_root_validation.py +0 -46
  635. chia/util/api_decorators.py +0 -89
  636. chia_blockchain-2.5.0rc1.dist-info/RECORD +0 -1028
  637. {chia_blockchain-2.5.0rc1.dist-info → chia_blockchain-2.5.1.dist-info}/entry_points.txt +0 -0
@@ -1,7 +1,7 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import re
4
- from typing import Any, List, Tuple
4
+ from typing import Any
5
5
 
6
6
  import pytest
7
7
 
@@ -21,8 +21,8 @@ from chia.util.ints import uint64
21
21
 
22
22
  @pytest.fixture(scope="function")
23
23
  async def setup_node_and_rpc(
24
- two_wallet_nodes_services: Tuple[List[SimulatorFullNodeService], List[WalletService], BlockTools],
25
- ) -> Tuple[FullNodeRpcClient, FullNodeRpcApi]:
24
+ two_wallet_nodes_services: tuple[list[SimulatorFullNodeService], list[WalletService], BlockTools],
25
+ ) -> tuple[FullNodeRpcClient, FullNodeRpcApi]:
26
26
  full_nodes, wallets, bt = two_wallet_nodes_services
27
27
  wallet = wallets[0]._node.wallet_state_manager.main_wallet
28
28
  full_node_apis = [full_node_service._api for full_node_service in full_nodes]
@@ -47,9 +47,9 @@ async def setup_node_and_rpc(
47
47
 
48
48
  @pytest.fixture(scope="function")
49
49
  async def one_node_no_blocks(
50
- one_node: Tuple[List[SimulatorFullNodeService], List[WalletService], BlockTools]
51
- ) -> Tuple[FullNodeRpcClient, FullNodeRpcApi]:
52
- full_nodes, wallets, bt = one_node
50
+ one_node: tuple[list[SimulatorFullNodeService], list[WalletService], BlockTools],
51
+ ) -> tuple[FullNodeRpcClient, FullNodeRpcApi]:
52
+ full_nodes, _wallets, bt = one_node
53
53
  full_node_apis = [full_node_service._api for full_node_service in full_nodes]
54
54
  full_node_api: FullNodeSimulator = full_node_apis[0]
55
55
  full_node_service_1 = full_nodes[0]
@@ -66,7 +66,7 @@ async def one_node_no_blocks(
66
66
 
67
67
 
68
68
  @pytest.mark.anyio
69
- async def test_get_blockchain_state(setup_node_and_rpc: Tuple[FullNodeRpcClient, FullNodeRpcApi]) -> None:
69
+ async def test_get_blockchain_state(setup_node_and_rpc: tuple[FullNodeRpcClient, FullNodeRpcApi]) -> None:
70
70
  # Confirm full node setup correctly
71
71
  client, _ = setup_node_and_rpc
72
72
  response = await client.get_blockchain_state()
@@ -74,16 +74,16 @@ async def test_get_blockchain_state(setup_node_and_rpc: Tuple[FullNodeRpcClient,
74
74
 
75
75
 
76
76
  @pytest.mark.anyio
77
- async def test_empty_request(setup_node_and_rpc: Tuple[FullNodeRpcClient, FullNodeRpcApi]) -> None:
78
- client, full_node_rpc_api = setup_node_and_rpc
77
+ async def test_empty_request(setup_node_and_rpc: tuple[FullNodeRpcClient, FullNodeRpcApi]) -> None:
78
+ _client, full_node_rpc_api = setup_node_and_rpc
79
79
 
80
80
  with pytest.raises(ValueError):
81
81
  await full_node_rpc_api.get_fee_estimate({})
82
82
 
83
83
 
84
84
  @pytest.mark.anyio
85
- async def test_empty_peak(one_node_no_blocks: Tuple[FullNodeRpcClient, FullNodeRpcApi]) -> None:
86
- client, full_node_rpc_api = one_node_no_blocks
85
+ async def test_empty_peak(one_node_no_blocks: tuple[FullNodeRpcClient, FullNodeRpcApi]) -> None:
86
+ _client, full_node_rpc_api = one_node_no_blocks
87
87
  response = await full_node_rpc_api.get_fee_estimate({"target_times": [], "cost": 1})
88
88
  del response["node_time_utc"]
89
89
  assert response == {
@@ -105,57 +105,57 @@ async def test_empty_peak(one_node_no_blocks: Tuple[FullNodeRpcClient, FullNodeR
105
105
 
106
106
 
107
107
  @pytest.mark.anyio
108
- async def test_no_target_times(setup_node_and_rpc: Tuple[FullNodeRpcClient, FullNodeRpcApi]) -> None:
109
- client, full_node_rpc_api = setup_node_and_rpc
108
+ async def test_no_target_times(setup_node_and_rpc: tuple[FullNodeRpcClient, FullNodeRpcApi]) -> None:
109
+ _client, full_node_rpc_api = setup_node_and_rpc
110
110
  with pytest.raises(ValueError):
111
111
  await full_node_rpc_api.get_fee_estimate({"cost": 1})
112
112
 
113
113
 
114
114
  @pytest.mark.anyio
115
- async def test_negative_time(setup_node_and_rpc: Tuple[FullNodeRpcClient, FullNodeRpcApi]) -> None:
116
- client, full_node_rpc_api = setup_node_and_rpc
115
+ async def test_negative_time(setup_node_and_rpc: tuple[FullNodeRpcClient, FullNodeRpcApi]) -> None:
116
+ _client, full_node_rpc_api = setup_node_and_rpc
117
117
  with pytest.raises(ValueError):
118
118
  await full_node_rpc_api.get_fee_estimate({"cost": 1, "target_times": [-1]})
119
119
 
120
120
 
121
121
  @pytest.mark.anyio
122
- async def test_negative_cost(setup_node_and_rpc: Tuple[FullNodeRpcClient, FullNodeRpcApi]) -> None:
123
- client, full_node_rpc_api = setup_node_and_rpc
122
+ async def test_negative_cost(setup_node_and_rpc: tuple[FullNodeRpcClient, FullNodeRpcApi]) -> None:
123
+ _client, full_node_rpc_api = setup_node_and_rpc
124
124
  with pytest.raises(ValueError):
125
125
  await full_node_rpc_api.get_fee_estimate({"cost": -1, "target_times": [1]})
126
126
 
127
127
 
128
128
  @pytest.mark.anyio
129
- async def test_no_cost_or_tx(setup_node_and_rpc: Tuple[FullNodeRpcClient, FullNodeRpcApi]) -> None:
130
- client, full_node_rpc_api = setup_node_and_rpc
129
+ async def test_no_cost_or_tx(setup_node_and_rpc: tuple[FullNodeRpcClient, FullNodeRpcApi]) -> None:
130
+ _client, full_node_rpc_api = setup_node_and_rpc
131
131
  with pytest.raises(ValueError):
132
132
  await full_node_rpc_api.get_fee_estimate({"target_times": []})
133
133
 
134
134
 
135
135
  @pytest.mark.anyio
136
- async def test_both_cost_and_tx(setup_node_and_rpc: Tuple[FullNodeRpcClient, FullNodeRpcApi]) -> None:
137
- client, full_node_rpc_api = setup_node_and_rpc
136
+ async def test_both_cost_and_tx(setup_node_and_rpc: tuple[FullNodeRpcClient, FullNodeRpcApi]) -> None:
137
+ _client, full_node_rpc_api = setup_node_and_rpc
138
138
  with pytest.raises(ValueError):
139
139
  await full_node_rpc_api.get_fee_estimate({"target_times": [], "cost": 1, "spend_bundle": "80"})
140
140
 
141
141
 
142
142
  @pytest.mark.anyio
143
- async def test_target_times_invalid_type(setup_node_and_rpc: Tuple[FullNodeRpcClient, FullNodeRpcApi]) -> None:
144
- client, full_node_rpc_api = setup_node_and_rpc
143
+ async def test_target_times_invalid_type(setup_node_and_rpc: tuple[FullNodeRpcClient, FullNodeRpcApi]) -> None:
144
+ _client, full_node_rpc_api = setup_node_and_rpc
145
145
  with pytest.raises(TypeError):
146
146
  await full_node_rpc_api.get_fee_estimate({"target_times": 1, "cost": 1})
147
147
 
148
148
 
149
149
  @pytest.mark.anyio
150
- async def test_cost_invalid_type(setup_node_and_rpc: Tuple[FullNodeRpcClient, FullNodeRpcApi]) -> None:
151
- client, full_node_rpc_api = setup_node_and_rpc
150
+ async def test_cost_invalid_type(setup_node_and_rpc: tuple[FullNodeRpcClient, FullNodeRpcApi]) -> None:
151
+ _client, full_node_rpc_api = setup_node_and_rpc
152
152
  with pytest.raises(ValueError):
153
153
  await full_node_rpc_api.get_fee_estimate({"target_times": [], "cost": "a lot"})
154
154
 
155
155
 
156
156
  @pytest.mark.anyio
157
- async def test_tx_invalid_type(setup_node_and_rpc: Tuple[FullNodeRpcClient, FullNodeRpcApi]) -> None:
158
- client, full_node_rpc_api = setup_node_and_rpc
157
+ async def test_tx_invalid_type(setup_node_and_rpc: tuple[FullNodeRpcClient, FullNodeRpcApi]) -> None:
158
+ _client, full_node_rpc_api = setup_node_and_rpc
159
159
  with pytest.raises(TypeError):
160
160
  await full_node_rpc_api.get_fee_estimate({"target_times": [], "spend_bundle": {"coin_spends": 1}})
161
161
 
@@ -164,24 +164,24 @@ async def test_tx_invalid_type(setup_node_and_rpc: Tuple[FullNodeRpcClient, Full
164
164
 
165
165
 
166
166
  @pytest.mark.anyio
167
- async def test_empty_target_times(setup_node_and_rpc: Tuple[FullNodeRpcClient, FullNodeRpcApi]) -> None:
168
- client, full_node_rpc_api = setup_node_and_rpc
167
+ async def test_empty_target_times(setup_node_and_rpc: tuple[FullNodeRpcClient, FullNodeRpcApi]) -> None:
168
+ _client, full_node_rpc_api = setup_node_and_rpc
169
169
  response = await full_node_rpc_api.get_fee_estimate({"target_times": [], "cost": 1})
170
170
  assert response["estimates"] == []
171
171
  assert response["target_times"] == []
172
172
 
173
173
 
174
174
  @pytest.mark.anyio
175
- async def test_cost(setup_node_and_rpc: Tuple[FullNodeRpcClient, FullNodeRpcApi]) -> None:
176
- client, full_node_rpc_api = setup_node_and_rpc
175
+ async def test_cost(setup_node_and_rpc: tuple[FullNodeRpcClient, FullNodeRpcApi]) -> None:
176
+ _client, full_node_rpc_api = setup_node_and_rpc
177
177
  response = await full_node_rpc_api.get_fee_estimate({"target_times": [1], "cost": 1})
178
178
  assert response["estimates"] == [0]
179
179
  assert response["target_times"] == [1]
180
180
 
181
181
 
182
182
  @pytest.mark.anyio
183
- async def test_tx(setup_node_and_rpc: Tuple[FullNodeRpcClient, FullNodeRpcApi], bt: BlockTools) -> None:
184
- client, full_node_rpc_api = setup_node_and_rpc
183
+ async def test_tx(setup_node_and_rpc: tuple[FullNodeRpcClient, FullNodeRpcApi], bt: BlockTools) -> None:
184
+ _client, full_node_rpc_api = setup_node_and_rpc
185
185
  wallet_a: WalletTool = bt.get_pool_wallet_tool()
186
186
  my_puzzle_hash = wallet_a.get_new_puzzlehash()
187
187
  recevier_puzzle_hash = bytes32(b"0" * 32)
@@ -197,8 +197,8 @@ async def test_tx(setup_node_and_rpc: Tuple[FullNodeRpcClient, FullNodeRpcApi],
197
197
 
198
198
 
199
199
  @pytest.mark.anyio
200
- async def test_multiple(setup_node_and_rpc: Tuple[FullNodeRpcClient, FullNodeRpcApi]) -> None:
201
- client, full_node_rpc_api = setup_node_and_rpc
200
+ async def test_multiple(setup_node_and_rpc: tuple[FullNodeRpcClient, FullNodeRpcApi]) -> None:
201
+ _client, full_node_rpc_api = setup_node_and_rpc
202
202
  response = await full_node_rpc_api.get_fee_estimate({"target_times": [1, 5, 10, 15, 60, 120, 180, 240], "cost": 1})
203
203
  assert response["estimates"] == [0, 0, 0, 0, 0, 0, 0, 0]
204
204
  assert response["target_times"] == [1, 5, 10, 15, 60, 120, 180, 240]
@@ -214,11 +214,11 @@ def get_test_spendbundle(bt: BlockTools) -> SpendBundle:
214
214
 
215
215
  @pytest.mark.anyio
216
216
  async def test_validate_fee_estimate_cost_err(
217
- setup_node_and_rpc: Tuple[FullNodeRpcClient, FullNodeRpcApi], bt: BlockTools
217
+ setup_node_and_rpc: tuple[FullNodeRpcClient, FullNodeRpcApi], bt: BlockTools
218
218
  ) -> None:
219
219
  spend_bundle = get_test_spendbundle(bt)
220
- client, full_node_rpc_api = setup_node_and_rpc
221
- bad_arglist: List[List[Any]] = [
220
+ _client, full_node_rpc_api = setup_node_and_rpc
221
+ bad_arglist: list[list[Any]] = [
222
222
  [["foo", "bar"]],
223
223
  [["spend_bundle", spend_bundle.to_json_dict()], ["cost", 1]],
224
224
  [["spend_bundle", spend_bundle.to_json_dict()], ["spend_type", "send_xch_transaction"]],
@@ -239,12 +239,12 @@ async def test_validate_fee_estimate_cost_err(
239
239
 
240
240
  @pytest.mark.anyio
241
241
  async def test_validate_fee_estimate_cost_ok(
242
- setup_node_and_rpc: Tuple[FullNodeRpcClient, FullNodeRpcApi], bt: BlockTools
242
+ setup_node_and_rpc: tuple[FullNodeRpcClient, FullNodeRpcApi], bt: BlockTools
243
243
  ) -> None:
244
244
  spend_bundle = get_test_spendbundle(bt)
245
- client, full_node_rpc_api = setup_node_and_rpc
245
+ _client, full_node_rpc_api = setup_node_and_rpc
246
246
 
247
- good_arglist: List[List[Any]] = [
247
+ good_arglist: list[list[Any]] = [
248
248
  ["spend_bundle", spend_bundle.to_json_dict()],
249
249
  ["cost", 1],
250
250
  ["spend_type", "send_xch_transaction"],
@@ -257,9 +257,9 @@ async def test_validate_fee_estimate_cost_ok(
257
257
 
258
258
  @pytest.mark.anyio
259
259
  async def test_get_spendbundle_type_cost_missing(
260
- setup_node_and_rpc: Tuple[FullNodeRpcClient, FullNodeRpcApi], bt: BlockTools
260
+ setup_node_and_rpc: tuple[FullNodeRpcClient, FullNodeRpcApi], bt: BlockTools
261
261
  ) -> None:
262
- client, full_node_rpc_api = setup_node_and_rpc
262
+ _client, full_node_rpc_api = setup_node_and_rpc
263
263
  with pytest.raises(KeyError, match=re.escape("INVALID")):
264
264
  request = {"target_times": [1], "spend_type": "INVALID"}
265
265
  _ = await full_node_rpc_api.get_fee_estimate(request)
@@ -267,9 +267,9 @@ async def test_get_spendbundle_type_cost_missing(
267
267
 
268
268
  @pytest.mark.anyio
269
269
  async def test_get_spendbundle_type_cost_spend_count_ok(
270
- setup_node_and_rpc: Tuple[FullNodeRpcClient, FullNodeRpcApi], bt: BlockTools
270
+ setup_node_and_rpc: tuple[FullNodeRpcClient, FullNodeRpcApi], bt: BlockTools
271
271
  ) -> None:
272
- client, full_node_rpc_api = setup_node_and_rpc
272
+ _client, full_node_rpc_api = setup_node_and_rpc
273
273
  spend_counts = [0, 1, 2]
274
274
  for spend_count in spend_counts:
275
275
  request = {"target_times": [1], "spend_type": "send_xch_transaction", "spend_count": spend_count}
@@ -279,9 +279,9 @@ async def test_get_spendbundle_type_cost_spend_count_ok(
279
279
 
280
280
  @pytest.mark.anyio
281
281
  async def test_get_spendbundle_type_cost_spend_count_bad(
282
- setup_node_and_rpc: Tuple[FullNodeRpcClient, FullNodeRpcApi], bt: BlockTools
282
+ setup_node_and_rpc: tuple[FullNodeRpcClient, FullNodeRpcApi], bt: BlockTools
283
283
  ) -> None:
284
- client, full_node_rpc_api = setup_node_and_rpc
284
+ _client, full_node_rpc_api = setup_node_and_rpc
285
285
  with pytest.raises(ValueError):
286
286
  request = {"target_times": [1], "spend_type": "send_xch_transaction", "spend_count": -1}
287
287
  _ = await full_node_rpc_api.get_fee_estimate(request)
@@ -1,7 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import logging
4
- from typing import List
5
4
 
6
5
  import pytest
7
6
 
@@ -47,7 +46,7 @@ def test_single_estimate() -> None:
47
46
 
48
47
  def make_block(
49
48
  height: uint32, num_tx: int, cost: uint64, fee: uint64, num_blocks_wait_in_mempool: int
50
- ) -> List[MempoolItemInfo]:
49
+ ) -> list[MempoolItemInfo]:
51
50
  block_included = uint32(height - num_blocks_wait_in_mempool)
52
51
  return [MempoolItemInfo(cost, fee, block_included)] * num_tx
53
52
 
@@ -95,7 +94,7 @@ def test_init_buckets() -> None:
95
94
 
96
95
 
97
96
  def test_get_bucket_index_empty_buckets() -> None:
98
- buckets: List[float] = []
97
+ buckets: list[float] = []
99
98
  for rate in [0.5, 1.0, 2.0]:
100
99
  with pytest.raises(RuntimeError):
101
100
  a = get_bucket_index(buckets, rate)
@@ -134,12 +133,12 @@ def test_get_bucket_index() -> None:
134
133
 
135
134
 
136
135
  def test_monotonically_decrease() -> None:
137
- inputs: List[List[float]]
138
- output: List[List[float]]
136
+ inputs: list[list[float]]
137
+ output: list[list[float]]
139
138
  inputs = [[], [-1], [0], [1], [0, 0], [0, 1], [1, 0], [1, 2, 3], [1, 1, 1], [3, 2, 1], [3, 3, 1], [1, 3, 3]]
140
139
  output = [[], [-1], [0], [1], [0, 0], [0, 0], [1, 0], [1, 1, 1], [1, 1, 1], [3, 2, 1], [3, 3, 1], [1, 1, 1]]
141
- i: List[float]
142
- o: List[float]
140
+ i: list[float]
141
+ o: list[float]
143
142
  for i, o in zip(inputs, output):
144
143
  print(o, i)
145
144
  assert o == make_monotonically_decreasing(i)
@@ -1,12 +1,12 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import logging
4
- from typing import Callable, List, Optional, Tuple
4
+ from typing import Callable, Optional
5
5
 
6
6
  import pytest
7
7
  from chia_rs import Coin, G2Element
8
8
 
9
- from chia.clvm.spend_sim import SimClient, SpendSim, sim_and_client
9
+ from chia._tests.util.spend_sim import SimClient, SpendSim, sim_and_client
10
10
  from chia.consensus.constants import ConsensusConstants
11
11
  from chia.consensus.default_constants import DEFAULT_CONSTANTS
12
12
  from chia.full_node.bitcoin_fee_estimator import BitcoinFeeEstimator
@@ -32,7 +32,7 @@ async def farm(
32
32
  sim: SpendSim,
33
33
  puzzle_hash: bytes32,
34
34
  item_inclusion_filter: Optional[Callable[[bytes32], bool]] = None,
35
- ) -> Tuple[List[Coin], List[Coin], List[Coin]]:
35
+ ) -> tuple[list[Coin], list[Coin], list[Coin]]:
36
36
  additions, removals = await sim.farm_block(puzzle_hash) # , item_inclusion_filter)
37
37
  height = sim.get_height()
38
38
  new_reward_coins = sim.block_records[height].reward_claims_incorporated
@@ -51,7 +51,7 @@ def make_tx_sb(from_coin: Coin) -> SpendBundle:
51
51
 
52
52
  async def init_test(
53
53
  sim: SpendSim, cli: SimClient, puzzle_hash: bytes32, spends_per_block: int
54
- ) -> Tuple[BitcoinFeeEstimator, List[Coin], List[Coin]]:
54
+ ) -> tuple[BitcoinFeeEstimator, list[Coin], list[Coin]]:
55
55
  new_reward_coins = []
56
56
  spend_coins = []
57
57
  fee_coins = []
@@ -79,11 +79,11 @@ async def init_test(
79
79
  @pytest.mark.anyio
80
80
  async def test_mempool_inclusion_filter_basic() -> None:
81
81
  async with sim_and_client(defaults=NEW_DEFAULT_CONSTANTS, pass_prefarm=False) as (sim, cli):
82
- estimator, spend_coins, fee_coins = await init_test(sim, cli, the_puzzle_hash, 1)
82
+ _estimator, spend_coins, _fee_coins = await init_test(sim, cli, the_puzzle_hash, 1)
83
83
  assert sim.mempool_manager.mempool.size() == 0
84
84
 
85
85
  spend_bundle: SpendBundle = make_tx_sb(spend_coins[0])
86
- status, error = await cli.push_tx(spend_bundle)
86
+ _status, error = await cli.push_tx(spend_bundle)
87
87
  assert sim.mempool_manager.mempool.size() == 1
88
88
  assert error is None
89
89
 
@@ -96,11 +96,11 @@ async def test_mempool_inclusion_filter_basic() -> None:
96
96
  def include_all(bundle_name: bytes32) -> bool:
97
97
  return True
98
98
 
99
- additions, removals = await sim.farm_block(the_puzzle_hash, item_inclusion_filter=include_none)
99
+ _additions, removals = await sim.farm_block(the_puzzle_hash, item_inclusion_filter=include_none)
100
100
  assert sim.mempool_manager.mempool.size() == 1
101
101
  assert removals == []
102
102
 
103
- additions, removals = await sim.farm_block(the_puzzle_hash, item_inclusion_filter=include_all)
103
+ _additions, removals = await sim.farm_block(the_puzzle_hash, item_inclusion_filter=include_all)
104
104
  assert sim.mempool_manager.mempool.size() == 0
105
105
  removal_ids = [c.name() for c in removals]
106
106
  assert mempool_item.name not in removal_ids
@@ -109,7 +109,7 @@ async def test_mempool_inclusion_filter_basic() -> None:
109
109
  @pytest.mark.anyio
110
110
  async def test_mempoolitem_height_added(db_version: int) -> None:
111
111
  async with sim_and_client(defaults=NEW_DEFAULT_CONSTANTS, pass_prefarm=False) as (sim, cli):
112
- estimator, spend_coins, fee_coins = await init_test(sim, cli, the_puzzle_hash, 1)
112
+ _estimator, spend_coins, _fee_coins = await init_test(sim, cli, the_puzzle_hash, 1)
113
113
  assert sim.mempool_manager.mempool.size() == 0
114
114
 
115
115
  spend_bundle: SpendBundle = make_tx_sb(spend_coins[0])
@@ -126,7 +126,7 @@ async def test_mempoolitem_height_added(db_version: int) -> None:
126
126
  assert mempool_item
127
127
  return bundle_name != mempool_item.name
128
128
 
129
- additions, removals = await sim.farm_block(the_puzzle_hash, item_inclusion_filter=ignore_spend)
129
+ _additions, removals = await sim.farm_block(the_puzzle_hash, item_inclusion_filter=ignore_spend)
130
130
  removal_ids = [c.name() for c in removals]
131
131
  assert mempool_item.name not in removal_ids
132
132
 
@@ -139,7 +139,7 @@ async def test_mempoolitem_height_added(db_version: int) -> None:
139
139
  assert mempool_item2.height_added_to_mempool == mempool_item2.height_added_to_mempool
140
140
 
141
141
  # Now farm it into the next block
142
- additions, removals = await sim.farm_block(the_puzzle_hash)
142
+ _additions, removals = await sim.farm_block(the_puzzle_hash)
143
143
  assert sim.mempool_manager.mempool.size() == 0
144
144
  assert len(removals) == 1
145
145
 
@@ -1,24 +1,15 @@
1
- # flake8: noqa: F501
1
+ # ruff: noqa: E501
2
2
  from __future__ import annotations
3
3
 
4
4
  import io
5
- from dataclasses import dataclass
6
- from typing import Any, List
5
+ from typing import Any
7
6
 
8
- import pytest
9
- from chia_rs import ALLOW_BACKREFS
7
+ from chia_rs import serialized_length
10
8
  from clvm.serialize import sexp_from_stream
11
9
  from clvm.SExp import SExp
12
10
  from clvm_tools import binutils
13
11
 
14
- from chia._tests.core.make_block_generator import make_spend_bundle
15
- from chia._tests.generator.test_rom import run_generator
16
- from chia.full_node.bundle_tools import simple_solution_generator, simple_solution_generator_backrefs
17
- from chia.full_node.mempool_check_conditions import get_puzzle_and_solution_for_coin
18
- from chia.simulator.block_tools import test_constants
19
12
  from chia.types.blockchain_format.program import INFINITE_COST, Program
20
- from chia.types.blockchain_format.serialized_program import SerializedProgram
21
- from chia.types.generator_types import BlockGenerator
22
13
  from chia.types.spend_bundle import SpendBundle
23
14
  from chia.util.byte_types import hexstr_to_bytes
24
15
  from chia.util.ints import uint32
@@ -44,21 +35,19 @@ Nil = Program.from_bytes(b"\x80")
44
35
 
45
36
  original_generator = hexstr_to_bytes(
46
37
  "ff01ffffffa00000000000000000000000000000000000000000000000000000000000000000ff830186a080ffffff02ffff01ff02ffff01ff02ffff03ff0bffff01ff02ffff03ffff09ff05ffff1dff0bffff1effff0bff0bffff02ff06ffff04ff02ffff04ff17ff8080808080808080ffff01ff02ff17ff2f80ffff01ff088080ff0180ffff01ff04ffff04ff04ffff04ff05ffff04ffff02ff06ffff04ff02ffff04ff17ff80808080ff80808080ffff02ff17ff2f808080ff0180ffff04ffff01ff32ff02ffff03ffff07ff0580ffff01ff0bffff0102ffff02ff06ffff04ff02ffff04ff09ff80808080ffff02ff06ffff04ff02ffff04ff0dff8080808080ffff01ff0bffff0101ff058080ff0180ff018080ffff04ffff01b081963921826355dcb6c355ccf9c2637c18adf7d38ee44d803ea9ca41587e48c913d8d46896eb830aeadfc13144a8eac3ff018080ffff80ffff01ffff33ffa06b7a83babea1eec790c947db4464ab657dbe9b887fe9acc247062847b8c2a8a9ff830186a08080ff8080808080"
47
- ) # noqa
38
+ )
48
39
 
49
40
  gen1 = b"\xff\x01" + original_generator
50
41
  gen2 = b"\xff\x01\xff\x01" + original_generator
51
42
  FAKE_BLOCK_HEIGHT1 = uint32(100)
52
43
  FAKE_BLOCK_HEIGHT2 = uint32(200)
53
44
 
54
- from chia_rs import serialized_length
55
-
56
45
  assert serialized_length(original_generator) == len(original_generator)
57
46
  assert serialized_length(gen1) == len(gen1)
58
47
  assert serialized_length(gen2) == len(gen2)
59
48
 
60
49
 
61
- def spend_bundle_to_coin_spend_entry_list(bundle: SpendBundle) -> List[Any]:
50
+ def spend_bundle_to_coin_spend_entry_list(bundle: SpendBundle) -> list[Any]:
62
51
  r = []
63
52
  for coin_spend in bundle.coin_spends:
64
53
  entry = [
@@ -78,11 +67,11 @@ class TestCompression:
78
67
 
79
68
  class TestDecompression:
80
69
  def test_deserialization(self) -> None:
81
- cost, out = DESERIALIZE_MOD.run_with_cost(INFINITE_COST, [bytes(Program.to("hello"))])
70
+ _cost, out = DESERIALIZE_MOD.run_with_cost(INFINITE_COST, [bytes(Program.to("hello"))])
82
71
  assert out == Program.to("hello")
83
72
 
84
73
  def test_deserialization_as_argument(self) -> None:
85
- cost, out = TEST_GEN_DESERIALIZE.run_with_cost(
74
+ _cost, out = TEST_GEN_DESERIALIZE.run_with_cost(
86
75
  INFINITE_COST, [DESERIALIZE_MOD, Nil, bytes(Program.to("hello"))]
87
76
  )
88
77
  print(bytes(Program.to("hello")))
@@ -91,7 +80,7 @@ class TestDecompression:
91
80
  assert out == Program.to("hello")
92
81
 
93
82
  def test_decompress_puzzle(self) -> None:
94
- cost, out = DECOMPRESS_PUZZLE.run_with_cost(
83
+ _cost, out = DECOMPRESS_PUZZLE.run_with_cost(
95
84
  INFINITE_COST, [DESERIALIZE_MOD, b"\xff", bytes(Program.to("pubkey")), b"\x80"]
96
85
  )
97
86
 
@@ -110,7 +99,7 @@ class TestDecompression:
110
99
  cse0 = binutils.assemble(
111
100
  "((0x0000000000000000000000000000000000000000000000000000000000000000 0x0186a0) (0xb081963921826355dcb6c355ccf9c2637c18adf7d38ee44d803ea9ca41587e48c913d8d46896eb830aeadfc13144a8eac3 (() (q (51 0x6b7a83babea1eec790c947db4464ab657dbe9b887fe9acc247062847b8c2a8a9 0x0186a0)) ())))"
112
101
  )
113
- cost, out = DECOMPRESS_CSE.run_with_cost(
102
+ _cost, out = DECOMPRESS_CSE.run_with_cost(
114
103
  INFINITE_COST, [DESERIALIZE_MOD, DECOMPRESS_PUZZLE, b"\xff", b"\x80", cse0]
115
104
  )
116
105
 
@@ -126,7 +115,7 @@ class TestDecompression:
126
115
  end = start + 238
127
116
  prefix = original_generator[start:end]
128
117
  # (deserialize decompress_puzzle puzzle_prefix cse)
129
- cost, out = DECOMPRESS_CSE_WITH_PREFIX.run_with_cost(
118
+ _cost, out = DECOMPRESS_CSE_WITH_PREFIX.run_with_cost(
130
119
  INFINITE_COST, [DESERIALIZE_MOD, DECOMPRESS_PUZZLE, prefix, cse0]
131
120
  )
132
121
 
@@ -135,9 +124,6 @@ class TestDecompression:
135
124
 
136
125
  def test_block_program_zero(self) -> None:
137
126
  "Decompress a list of CSEs"
138
- cse1 = binutils.assemble(
139
- "(((0x0000000000000000000000000000000000000000000000000000000000000000 0x0186a0) (0xb081963921826355dcb6c355ccf9c2637c18adf7d38ee44d803ea9ca41587e48c913d8d46896eb830aeadfc13144a8eac3 (() (q (51 0x6b7a83babea1eec790c947db4464ab657dbe9b887fe9acc247062847b8c2a8a9 0x0186a0)) ()))))"
140
- )
141
127
  cse2 = binutils.assemble(
142
128
  """
143
129
  (
@@ -159,7 +145,7 @@ class TestDecompression:
159
145
 
160
146
  # (mod (decompress_puzzle decompress_coin_spend_entry start end compressed_cses deserialize generator_list reserved_arg)
161
147
  # cost, out = DECOMPRESS_BLOCK.run_with_cost(INFINITE_COST, [DECOMPRESS_PUZZLE, DECOMPRESS_CSE, start, Program.to(end), cse0, DESERIALIZE_MOD, bytes(original_generator)])
162
- cost, out = DECOMPRESS_BLOCK.run_with_cost(
148
+ _cost, out = DECOMPRESS_BLOCK.run_with_cost(
163
149
  INFINITE_COST,
164
150
  [
165
151
  DECOMPRESS_PUZZLE,
@@ -176,9 +162,6 @@ class TestDecompression:
176
162
  print(out)
177
163
 
178
164
  def test_block_program_zero_with_curry(self) -> None:
179
- cse1 = binutils.assemble(
180
- "(((0x0000000000000000000000000000000000000000000000000000000000000000 0x0186a0) (0xb081963921826355dcb6c355ccf9c2637c18adf7d38ee44d803ea9ca41587e48c913d8d46896eb830aeadfc13144a8eac3 (() (q (51 0x6b7a83babea1eec790c947db4464ab657dbe9b887fe9acc247062847b8c2a8a9 0x0186a0)) ()))))"
181
- )
182
165
  cse2 = binutils.assemble(
183
166
  """
184
167
  (
@@ -201,7 +184,7 @@ class TestDecompression:
201
184
  # (mod (decompress_puzzle decompress_coin_spend_entry start end compressed_cses deserialize generator_list reserved_arg)
202
185
  # cost, out = DECOMPRESS_BLOCK.run_with_cost(INFINITE_COST, [DECOMPRESS_PUZZLE, DECOMPRESS_CSE, start, Program.to(end), cse0, DESERIALIZE_MOD, bytes(original_generator)])
203
186
  p = DECOMPRESS_BLOCK.curry(DECOMPRESS_PUZZLE, DECOMPRESS_CSE_WITH_PREFIX, start, Program.to(end))
204
- cost, out = p.run_with_cost(INFINITE_COST, [cse2, DESERIALIZE_MOD, [bytes(original_generator)]])
187
+ _cost, out = p.run_with_cost(INFINITE_COST, [cse2, DESERIALIZE_MOD, [bytes(original_generator)]])
205
188
 
206
189
  print()
207
190
  print(p)
@@ -211,7 +194,7 @@ class TestDecompression:
211
194
  DECOMPRESS_PUZZLE, DECOMPRESS_CSE_WITH_PREFIX, start, Program.to(end), cse2, DESERIALIZE_MOD
212
195
  )
213
196
  generator_args = Program.to([[original_generator]])
214
- cost, out = p_with_cses.run_with_cost(INFINITE_COST, generator_args)
197
+ _cost, out = p_with_cses.run_with_cost(INFINITE_COST, generator_args)
215
198
 
216
199
  print()
217
200
  print(p_with_cses)
@@ -7,19 +7,19 @@ from chia.types.blockchain_format.serialized_program import SerializedProgram
7
7
 
8
8
  gen0 = SerializedProgram.from_bytes(
9
9
  bytes.fromhex(
10
- "ff01ffffffa00000000000000000000000000000000000000000000000000000000000000000ff830186a080ffffff02ffff01ff02ffff01ff02ffff03ff0bffff01ff02ffff03ffff09ff05ffff1dff0bffff1effff0bff0bffff02ff06ffff04ff02ffff04ff17ff8080808080808080ffff01ff02ff17ff2f80ffff01ff088080ff0180ffff01ff04ffff04ff04ffff04ff05ffff04ffff02ff06ffff04ff02ffff04ff17ff80808080ff80808080ffff02ff17ff2f808080ff0180ffff04ffff01ff32ff02ffff03ffff07ff0580ffff01ff0bffff0102ffff02ff06ffff04ff02ffff04ff09ff80808080ffff02ff06ffff04ff02ffff04ff0dff8080808080ffff01ff0bffff0101ff058080ff0180ff018080ffff04ffff01b081963921826355dcb6c355ccf9c2637c18adf7d38ee44d803ea9ca41587e48c913d8d46896eb830aeadfc13144a8eac3ff018080ffff80ffff01ffff33ffa06b7a83babea1eec790c947db4464ab657dbe9b887fe9acc247062847b8c2a8a9ff830186a08080ff8080808080" # noqa
10
+ "ff01ffffffa00000000000000000000000000000000000000000000000000000000000000000ff830186a080ffffff02ffff01ff02ffff01ff02ffff03ff0bffff01ff02ffff03ffff09ff05ffff1dff0bffff1effff0bff0bffff02ff06ffff04ff02ffff04ff17ff8080808080808080ffff01ff02ff17ff2f80ffff01ff088080ff0180ffff01ff04ffff04ff04ffff04ff05ffff04ffff02ff06ffff04ff02ffff04ff17ff80808080ff80808080ffff02ff17ff2f808080ff0180ffff04ffff01ff32ff02ffff03ffff07ff0580ffff01ff0bffff0102ffff02ff06ffff04ff02ffff04ff09ff80808080ffff02ff06ffff04ff02ffff04ff0dff8080808080ffff01ff0bffff0101ff058080ff0180ff018080ffff04ffff01b081963921826355dcb6c355ccf9c2637c18adf7d38ee44d803ea9ca41587e48c913d8d46896eb830aeadfc13144a8eac3ff018080ffff80ffff01ffff33ffa06b7a83babea1eec790c947db4464ab657dbe9b887fe9acc247062847b8c2a8a9ff830186a08080ff8080808080"
11
11
  )
12
12
  )
13
13
 
14
14
  gen1 = SerializedProgram.from_bytes(
15
15
  bytes.fromhex(
16
- "ff01ffffffa00000000000000000000000000000000000000000000000000000000000000000ff830186a080ffffff02ffff01ff02ffff01ff02ffff03ff0bffff01ff02ffff03ffff09ff05ffff1dff0bffff1effff0bff0bffff02ff06ffff04ff02ffff04ff17ff8080808080808080ffff01ff02ff17ff2f80ffff01ff088080ff0180ffff01ff04ffff04ff04ffff04ff05ffff04ffff02ff06ffff04ff02ffff04ff17ff80808080ff80808080ffff02ff17ff2f808080ff0180ffff04ffff01ff32ff02ffff03ffff07ff0580ffff01ff0bffff0102ffff02ff06ffff04ff02ffff04ff09ff80808080ffff02ff06ffff04ff02ffff04ff0dff8080808080ffff01ff0bffff0101ff058080ff0180ff018080ffff04ffff01b081963921826355dcb6c355ccf9c2637c18adf7d38ee44d803ea9ca41587e48c913d8d46896eb830aeadfc13144a8eac3ff018080ffff80ffff01ffff33ffa06b7a83babea1eec790c947db4464ab657dbe9b887fe9acc247062847b8c2a8a9ff830186a08080ff8080808080" # noqa
16
+ "ff01ffffffa00000000000000000000000000000000000000000000000000000000000000000ff830186a080ffffff02ffff01ff02ffff01ff02ffff03ff0bffff01ff02ffff03ffff09ff05ffff1dff0bffff1effff0bff0bffff02ff06ffff04ff02ffff04ff17ff8080808080808080ffff01ff02ff17ff2f80ffff01ff088080ff0180ffff01ff04ffff04ff04ffff04ff05ffff04ffff02ff06ffff04ff02ffff04ff17ff80808080ff80808080ffff02ff17ff2f808080ff0180ffff04ffff01ff32ff02ffff03ffff07ff0580ffff01ff0bffff0102ffff02ff06ffff04ff02ffff04ff09ff80808080ffff02ff06ffff04ff02ffff04ff0dff8080808080ffff01ff0bffff0101ff058080ff0180ff018080ffff04ffff01b081963921826355dcb6c355ccf9c2637c18adf7d38ee44d803ea9ca41587e48c913d8d46896eb830aeadfc13144a8eac3ff018080ffff80ffff01ffff33ffa06b7a83babea1eec790c947db4464ab657dbe9b887fe9acc247062847b8c2a8a9ff830186a08080ff8080808080"
17
17
  )
18
18
  )
19
19
 
20
20
  gen2 = SerializedProgram.from_bytes(
21
21
  bytes.fromhex(
22
- "ff01ffffffa00000000000000000000000000000000000000000000000000000000000000000ff830186a080ffffff02ffff01ff02ffff01ff02ffff03ff0bffff01ff02ffff03ffff09ff05ffff1dff0bffff1effff0bff0bffff02ff06ffff04ff02ffff04ff17ff8080808080808080ffff01ff02ff17ff2f80ffff01ff088080ff0180ffff01ff04ffff04ff04ffff04ff05ffff04ffff02ff06ffff04ff02ffff04ff17ff80808080ff80808080ffff02ff17ff2f808080ff0180ffff04ffff01ff32ff02ffff03ffff07ff0580ffff01ff0bffff0102ffff02ff06ffff04ff02ffff04ff09ff80808080ffff02ff06ffff04ff02ffff04ff0dff8080808080ffff01ff0bffff0101ff058080ff0180ff018080ffff04ffff01b081963921826355dcb6c355ccf9c2637c18adf7d38ee44d803ea9ca41587e48c913d8d46896eb830aeadfc13144a8eac3ff018080ffff80ffff01ffff33ffa06b7a83babea1eec790c947db4464ab657dbe9b887fe9acc247062847b8c2a8a9ff830186a08080ff8080808080" # noqa
22
+ "ff01ffffffa00000000000000000000000000000000000000000000000000000000000000000ff830186a080ffffff02ffff01ff02ffff01ff02ffff03ff0bffff01ff02ffff03ffff09ff05ffff1dff0bffff1effff0bff0bffff02ff06ffff04ff02ffff04ff17ff8080808080808080ffff01ff02ff17ff2f80ffff01ff088080ff0180ffff01ff04ffff04ff04ffff04ff05ffff04ffff02ff06ffff04ff02ffff04ff17ff80808080ff80808080ffff02ff17ff2f808080ff0180ffff04ffff01ff32ff02ffff03ffff07ff0580ffff01ff0bffff0102ffff02ff06ffff04ff02ffff04ff09ff80808080ffff02ff06ffff04ff02ffff04ff0dff8080808080ffff01ff0bffff0101ff058080ff0180ff018080ffff04ffff01b081963921826355dcb6c355ccf9c2637c18adf7d38ee44d803ea9ca41587e48c913d8d46896eb830aeadfc13144a8eac3ff018080ffff80ffff01ffff33ffa06b7a83babea1eec790c947db4464ab657dbe9b887fe9acc247062847b8c2a8a9ff830186a08080ff8080808080"
23
23
  )
24
24
  )
25
25
 
@@ -1,14 +1,12 @@
1
1
  from __future__ import annotations
2
2
 
3
- from typing import List, Tuple
4
-
5
3
  from clvm.CLVMObject import CLVMStorage
6
4
  from clvm_tools import binutils
7
5
  from clvm_tools.clvmc import compile_clvm_text
8
6
 
7
+ from chia._tests.util.get_name_puzzle_conditions import get_name_puzzle_conditions
9
8
  from chia.consensus.condition_costs import ConditionCost
10
9
  from chia.consensus.default_constants import DEFAULT_CONSTANTS
11
- from chia.full_node.mempool_check_conditions import get_name_puzzle_conditions
12
10
  from chia.types.blockchain_format.program import Program
13
11
  from chia.types.blockchain_format.serialized_program import SerializedProgram
14
12
  from chia.types.blockchain_format.sized_bytes import bytes32
@@ -17,8 +15,8 @@ from chia.types.spend_bundle_conditions import SpendConditions
17
15
  from chia.util.ints import uint32
18
16
  from chia.wallet.puzzles.load_clvm import load_clvm, load_serialized_clvm_maybe_recompile
19
17
 
20
- MAX_COST = int(1e15)
21
- COST_PER_BYTE = int(12000)
18
+ MAX_COST = 10**15
19
+ COST_PER_BYTE = 12000
22
20
 
23
21
 
24
22
  DESERIALIZE_MOD = load_clvm("chialisp_deserialisation.clsp", package_or_requirement="chia.consensus.puzzles")
@@ -78,13 +76,13 @@ EXPECTED_OUTPUT = (
78
76
  )
79
77
 
80
78
 
81
- def run_generator(self: BlockGenerator) -> Tuple[int, Program]:
79
+ def run_generator(self: BlockGenerator) -> tuple[int, Program]:
82
80
  """This mode is meant for accepting possibly soft-forked transactions into the mempool"""
83
81
  args = Program.to([self.generator_refs])
84
82
  return GENERATOR_MOD.run_with_cost(MAX_COST, [self.program, args])
85
83
 
86
84
 
87
- def as_atom_list(prg: CLVMStorage) -> List[bytes]:
85
+ def as_atom_list(prg: CLVMStorage) -> list[bytes]:
88
86
  """
89
87
  Pretend `prg` is a list of atoms. Return the corresponding
90
88
  python list of atoms.
@@ -167,7 +165,7 @@ class TestROM:
167
165
  # the ROM supports extra data after a coin. This test checks that it actually gets passed through
168
166
 
169
167
  gen = block_generator()
170
- cost, r = run_generator(gen)
168
+ _cost, r = run_generator(gen)
171
169
  coin_spends = r.first()
172
170
  for coin_spend in coin_spends.as_iter():
173
171
  extra_data = coin_spend.rest().rest().rest().rest()
@@ -177,6 +175,6 @@ class TestROM:
177
175
  # the ROM supports extra data after the coin spend list. This test checks that it actually gets passed through
178
176
 
179
177
  gen = block_generator()
180
- cost, r = run_generator(gen)
178
+ _cost, r = run_generator(gen)
181
179
  extra_block_data = r.rest()
182
180
  assert as_atom_list(extra_block_data) == b"extra data for block".split()
@@ -1,7 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import logging
4
- from typing import List
5
4
 
6
5
  import pytest
7
6
  from chia_rs import G1Element
@@ -79,13 +78,13 @@ def test_list_delta(delta: DeltaType) -> None:
79
78
  [["-2", "2", "3", "-1"], ["2", "3"], PathListDelta([], ["-2", "-1"])],
80
79
  ],
81
80
  )
82
- def test_path_list_delta_from_lists(old: List[str], new: List[str], result: PathListDelta) -> None:
81
+ def test_path_list_delta_from_lists(old: list[str], new: list[str], result: PathListDelta) -> None:
83
82
  assert PathListDelta.from_lists(old, new) == result
84
83
 
85
84
 
86
85
  def test_delta_empty() -> None:
87
86
  delta: Delta = Delta()
88
- all_deltas: List[DeltaType] = [delta.valid, delta.invalid, delta.keys_missing, delta.duplicates]
87
+ all_deltas: list[DeltaType] = [delta.valid, delta.invalid, delta.keys_missing, delta.duplicates]
89
88
  assert delta.empty()
90
89
  for d1 in all_deltas:
91
90
  delta.valid.additions["0"] = dummy_plot("0")