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
@@ -4,7 +4,7 @@ import dataclasses
4
4
  from dataclasses import dataclass, field
5
5
  from enum import Enum, IntEnum
6
6
  from hashlib import sha256
7
- from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, Type, Union
7
+ from typing import TYPE_CHECKING, Any, Optional, Union
8
8
 
9
9
  import aiosqlite
10
10
  from typing_extensions import final
@@ -52,14 +52,14 @@ def key_hash(key: bytes) -> bytes32:
52
52
  class PaginationData:
53
53
  total_pages: int
54
54
  total_bytes: int
55
- hashes: List[bytes32]
55
+ hashes: list[bytes32]
56
56
 
57
57
 
58
- def get_hashes_for_page(page: int, lengths: Dict[bytes32, int], max_page_size: int) -> PaginationData:
58
+ def get_hashes_for_page(page: int, lengths: dict[bytes32, int], max_page_size: int) -> PaginationData:
59
59
  current_page = 0
60
60
  current_page_size = 0
61
61
  total_bytes = 0
62
- hashes: List[bytes32] = []
62
+ hashes: list[bytes32] = []
63
63
  for hash, length in sorted(lengths.items(), key=lambda x: (-x[1], x[0])):
64
64
  if length > max_page_size:
65
65
  raise RuntimeError(
@@ -98,9 +98,9 @@ async def _dot_dump(
98
98
 
99
99
  n = 8
100
100
 
101
- dot_nodes: List[str] = []
102
- dot_connections: List[str] = []
103
- dot_pair_boxes: List[str] = []
101
+ dot_nodes: list[str] = []
102
+ dot_connections: list[str] = []
103
+ dot_pair_boxes: list[str] = []
104
104
 
105
105
  for terminal_node in terminal_nodes:
106
106
  hash = terminal_node.hash.hex()
@@ -245,7 +245,7 @@ other_side_to_bit = {Side.LEFT: 1, Side.RIGHT: 0}
245
245
  class ProofOfInclusion:
246
246
  node_hash: bytes32
247
247
  # children before parents
248
- layers: List[ProofOfInclusionLayer]
248
+ layers: list[ProofOfInclusionLayer]
249
249
 
250
250
  @property
251
251
  def root_hash(self) -> bytes32:
@@ -257,7 +257,7 @@ class ProofOfInclusion:
257
257
  def sibling_sides_integer(self) -> int:
258
258
  return sum(other_side_to_bit[layer.other_hash_side] << index for index, layer in enumerate(self.layers))
259
259
 
260
- def sibling_hashes(self) -> List[bytes32]:
260
+ def sibling_hashes(self) -> list[bytes32]:
261
261
  return [layer.other_hash for layer in self.layers]
262
262
 
263
263
  def as_program(self) -> Program:
@@ -366,7 +366,7 @@ class Root:
366
366
  status=Status(row["status"]),
367
367
  )
368
368
 
369
- def to_row(self) -> Dict[str, Any]:
369
+ def to_row(self) -> dict[str, Any]:
370
370
  return {
371
371
  "tree_id": self.store_id,
372
372
  "node_hash": self.node_hash,
@@ -375,7 +375,7 @@ class Root:
375
375
  }
376
376
 
377
377
  @classmethod
378
- def unmarshal(cls, marshalled: Dict[str, Any]) -> Root:
378
+ def unmarshal(cls, marshalled: dict[str, Any]) -> Root:
379
379
  return cls(
380
380
  store_id=bytes32.from_hexstr(marshalled["tree_id"]),
381
381
  node_hash=None if marshalled["node_hash"] is None else bytes32.from_hexstr(marshalled["node_hash"]),
@@ -383,7 +383,7 @@ class Root:
383
383
  status=Status(marshalled["status"]),
384
384
  )
385
385
 
386
- def marshal(self) -> Dict[str, Any]:
386
+ def marshal(self) -> dict[str, Any]:
387
387
  return {
388
388
  "tree_id": self.store_id.hex(),
389
389
  "node_hash": None if self.node_hash is None else self.node_hash.hex(),
@@ -392,7 +392,7 @@ class Root:
392
392
  }
393
393
 
394
394
 
395
- node_type_to_class: Dict[NodeType, Union[Type[InternalNode], Type[TerminalNode]]] = {
395
+ node_type_to_class: dict[NodeType, Union[type[InternalNode], type[TerminalNode]]] = {
396
396
  NodeType.INTERNAL: InternalNode,
397
397
  NodeType.TERMINAL: TerminalNode,
398
398
  }
@@ -408,7 +408,7 @@ class ServerInfo:
408
408
  @dataclass(frozen=True)
409
409
  class Subscription:
410
410
  store_id: bytes32
411
- servers_info: List[ServerInfo]
411
+ servers_info: list[ServerInfo]
412
412
 
413
413
 
414
414
  @dataclass(frozen=True)
@@ -433,13 +433,13 @@ class KeyValue:
433
433
  value: bytes
434
434
 
435
435
  @classmethod
436
- def unmarshal(cls, marshalled: Dict[str, Any]) -> KeyValue:
436
+ def unmarshal(cls, marshalled: dict[str, Any]) -> KeyValue:
437
437
  return cls(
438
438
  key=hexstr_to_bytes(marshalled["key"]),
439
439
  value=hexstr_to_bytes(marshalled["value"]),
440
440
  )
441
441
 
442
- def marshal(self) -> Dict[str, Any]:
442
+ def marshal(self) -> dict[str, Any]:
443
443
  return {
444
444
  "key": self.key.hex(),
445
445
  "value": self.value.hex(),
@@ -449,16 +449,16 @@ class KeyValue:
449
449
  @dataclasses.dataclass(frozen=True)
450
450
  class OfferStore:
451
451
  store_id: bytes32
452
- inclusions: Tuple[KeyValue, ...]
452
+ inclusions: tuple[KeyValue, ...]
453
453
 
454
454
  @classmethod
455
- def unmarshal(cls, marshalled: Dict[str, Any]) -> OfferStore:
455
+ def unmarshal(cls, marshalled: dict[str, Any]) -> OfferStore:
456
456
  return cls(
457
457
  store_id=bytes32.from_hexstr(marshalled["store_id"]),
458
458
  inclusions=tuple(KeyValue.unmarshal(key_value) for key_value in marshalled["inclusions"]),
459
459
  )
460
460
 
461
- def marshal(self) -> Dict[str, Any]:
461
+ def marshal(self) -> dict[str, Any]:
462
462
  return {
463
463
  "store_id": self.store_id.hex(),
464
464
  "inclusions": [key_value.marshal() for key_value in self.inclusions],
@@ -475,14 +475,14 @@ class Layer:
475
475
  combined_hash: bytes32
476
476
 
477
477
  @classmethod
478
- def unmarshal(cls, marshalled: Dict[str, Any]) -> Layer:
478
+ def unmarshal(cls, marshalled: dict[str, Any]) -> Layer:
479
479
  return cls(
480
480
  other_hash_side=Side.unmarshal(marshalled["other_hash_side"]),
481
481
  other_hash=bytes32.from_hexstr(marshalled["other_hash"]),
482
482
  combined_hash=bytes32.from_hexstr(marshalled["combined_hash"]),
483
483
  )
484
484
 
485
- def marshal(self) -> Dict[str, Any]:
485
+ def marshal(self) -> dict[str, Any]:
486
486
  return {
487
487
  "other_hash_side": self.other_hash_side.marshal(),
488
488
  "other_hash": self.other_hash.hex(),
@@ -492,19 +492,19 @@ class Layer:
492
492
 
493
493
  @dataclasses.dataclass(frozen=True)
494
494
  class MakeOfferRequest:
495
- maker: Tuple[OfferStore, ...]
496
- taker: Tuple[OfferStore, ...]
495
+ maker: tuple[OfferStore, ...]
496
+ taker: tuple[OfferStore, ...]
497
497
  fee: Optional[uint64]
498
498
 
499
499
  @classmethod
500
- def unmarshal(cls, marshalled: Dict[str, Any]) -> MakeOfferRequest:
500
+ def unmarshal(cls, marshalled: dict[str, Any]) -> MakeOfferRequest:
501
501
  return cls(
502
502
  maker=tuple(OfferStore.unmarshal(offer_store) for offer_store in marshalled["maker"]),
503
503
  taker=tuple(OfferStore.unmarshal(offer_store) for offer_store in marshalled["taker"]),
504
504
  fee=None if marshalled["fee"] is None else uint64(marshalled["fee"]),
505
505
  )
506
506
 
507
- def marshal(self) -> Dict[str, Any]:
507
+ def marshal(self) -> dict[str, Any]:
508
508
  return {
509
509
  "maker": [offer_store.marshal() for offer_store in self.maker],
510
510
  "taker": [offer_store.marshal() for offer_store in self.taker],
@@ -517,10 +517,10 @@ class Proof:
517
517
  key: bytes
518
518
  value: bytes
519
519
  node_hash: bytes32
520
- layers: Tuple[Layer, ...]
520
+ layers: tuple[Layer, ...]
521
521
 
522
522
  @classmethod
523
- def unmarshal(cls, marshalled: Dict[str, Any]) -> Proof:
523
+ def unmarshal(cls, marshalled: dict[str, Any]) -> Proof:
524
524
  return cls(
525
525
  key=hexstr_to_bytes(marshalled["key"]),
526
526
  value=hexstr_to_bytes(marshalled["value"]),
@@ -534,7 +534,7 @@ class Proof:
534
534
 
535
535
  return self.layers[-1].combined_hash
536
536
 
537
- def marshal(self) -> Dict[str, Any]:
537
+ def marshal(self) -> dict[str, Any]:
538
538
  return {
539
539
  "key": self.key.hex(),
540
540
  "value": self.value.hex(),
@@ -546,16 +546,16 @@ class Proof:
546
546
  @dataclasses.dataclass(frozen=True)
547
547
  class StoreProofs:
548
548
  store_id: bytes32
549
- proofs: Tuple[Proof, ...]
549
+ proofs: tuple[Proof, ...]
550
550
 
551
551
  @classmethod
552
- def unmarshal(cls, marshalled: Dict[str, Any]) -> StoreProofs:
552
+ def unmarshal(cls, marshalled: dict[str, Any]) -> StoreProofs:
553
553
  return cls(
554
554
  store_id=bytes32.from_hexstr(marshalled["store_id"]),
555
555
  proofs=tuple(Proof.unmarshal(proof) for proof in marshalled["proofs"]),
556
556
  )
557
557
 
558
- def marshal(self) -> Dict[str, Any]:
558
+ def marshal(self) -> dict[str, Any]:
559
559
  return {
560
560
  "store_id": self.store_id.hex(),
561
561
  "proofs": [proof.marshal() for proof in self.proofs],
@@ -566,11 +566,11 @@ class StoreProofs:
566
566
  class Offer:
567
567
  trade_id: bytes
568
568
  offer: bytes
569
- taker: Tuple[OfferStore, ...]
570
- maker: Tuple[StoreProofs, ...]
569
+ taker: tuple[OfferStore, ...]
570
+ maker: tuple[StoreProofs, ...]
571
571
 
572
572
  @classmethod
573
- def unmarshal(cls, marshalled: Dict[str, Any]) -> Offer:
573
+ def unmarshal(cls, marshalled: dict[str, Any]) -> Offer:
574
574
  return cls(
575
575
  trade_id=bytes32.from_hexstr(marshalled["trade_id"]),
576
576
  offer=hexstr_to_bytes(marshalled["offer"]),
@@ -578,7 +578,7 @@ class Offer:
578
578
  maker=tuple(StoreProofs.unmarshal(store_proof) for store_proof in marshalled["maker"]),
579
579
  )
580
580
 
581
- def marshal(self) -> Dict[str, Any]:
581
+ def marshal(self) -> dict[str, Any]:
582
582
  return {
583
583
  "trade_id": self.trade_id.hex(),
584
584
  "offer": self.offer.hex(),
@@ -593,13 +593,13 @@ class MakeOfferResponse:
593
593
  offer: Offer
594
594
 
595
595
  @classmethod
596
- def unmarshal(cls, marshalled: Dict[str, Any]) -> MakeOfferResponse:
596
+ def unmarshal(cls, marshalled: dict[str, Any]) -> MakeOfferResponse:
597
597
  return cls(
598
598
  success=marshalled["success"],
599
599
  offer=Offer.unmarshal(marshalled["offer"]),
600
600
  )
601
601
 
602
- def marshal(self) -> Dict[str, Any]:
602
+ def marshal(self) -> dict[str, Any]:
603
603
  return {
604
604
  "success": self.success,
605
605
  "offer": self.offer.marshal(),
@@ -612,13 +612,13 @@ class TakeOfferRequest:
612
612
  fee: Optional[uint64]
613
613
 
614
614
  @classmethod
615
- def unmarshal(cls, marshalled: Dict[str, Any]) -> TakeOfferRequest:
615
+ def unmarshal(cls, marshalled: dict[str, Any]) -> TakeOfferRequest:
616
616
  return cls(
617
617
  offer=Offer.unmarshal(marshalled["offer"]),
618
618
  fee=None if marshalled["fee"] is None else uint64(marshalled["fee"]),
619
619
  )
620
620
 
621
- def marshal(self) -> Dict[str, Any]:
621
+ def marshal(self) -> dict[str, Any]:
622
622
  return {
623
623
  "offer": self.offer.marshal(),
624
624
  "fee": None if self.fee is None else int(self.fee),
@@ -631,13 +631,13 @@ class TakeOfferResponse:
631
631
  trade_id: bytes32
632
632
 
633
633
  @classmethod
634
- def unmarshal(cls, marshalled: Dict[str, Any]) -> TakeOfferResponse:
634
+ def unmarshal(cls, marshalled: dict[str, Any]) -> TakeOfferResponse:
635
635
  return cls(
636
636
  success=marshalled["success"],
637
637
  trade_id=bytes32.from_hexstr(marshalled["trade_id"]),
638
638
  )
639
639
 
640
- def marshal(self) -> Dict[str, Any]:
640
+ def marshal(self) -> dict[str, Any]:
641
641
  return {
642
642
  "success": self.success,
643
643
  "trade_id": self.trade_id.hex(),
@@ -653,7 +653,7 @@ class VerifyOfferResponse:
653
653
  fee: Optional[uint64] = None
654
654
 
655
655
  @classmethod
656
- def unmarshal(cls, marshalled: Dict[str, Any]) -> VerifyOfferResponse:
656
+ def unmarshal(cls, marshalled: dict[str, Any]) -> VerifyOfferResponse:
657
657
  return cls(
658
658
  success=marshalled["success"],
659
659
  valid=marshalled["valid"],
@@ -661,7 +661,7 @@ class VerifyOfferResponse:
661
661
  fee=None if marshalled["fee"] is None else uint64(marshalled["fee"]),
662
662
  )
663
663
 
664
- def marshal(self) -> Dict[str, Any]:
664
+ def marshal(self) -> dict[str, Any]:
665
665
  return {
666
666
  "success": self.success,
667
667
  "valid": self.valid,
@@ -678,14 +678,14 @@ class CancelOfferRequest:
678
678
  fee: Optional[uint64]
679
679
 
680
680
  @classmethod
681
- def unmarshal(cls, marshalled: Dict[str, Any]) -> CancelOfferRequest:
681
+ def unmarshal(cls, marshalled: dict[str, Any]) -> CancelOfferRequest:
682
682
  return cls(
683
683
  trade_id=bytes32.from_hexstr(marshalled["trade_id"]),
684
684
  secure=marshalled["secure"],
685
685
  fee=None if marshalled["fee"] is None else uint64(marshalled["fee"]),
686
686
  )
687
687
 
688
- def marshal(self) -> Dict[str, Any]:
688
+ def marshal(self) -> dict[str, Any]:
689
689
  return {
690
690
  "trade_id": self.trade_id.hex(),
691
691
  "secure": self.secure,
@@ -698,12 +698,12 @@ class CancelOfferResponse:
698
698
  success: bool
699
699
 
700
700
  @classmethod
701
- def unmarshal(cls, marshalled: Dict[str, Any]) -> CancelOfferResponse:
701
+ def unmarshal(cls, marshalled: dict[str, Any]) -> CancelOfferResponse:
702
702
  return cls(
703
703
  success=marshalled["success"],
704
704
  )
705
705
 
706
- def marshal(self) -> Dict[str, Any]:
706
+ def marshal(self) -> dict[str, Any]:
707
707
  return {
708
708
  "success": self.success,
709
709
  }
@@ -715,12 +715,12 @@ class ClearPendingRootsRequest:
715
715
  store_id: bytes32
716
716
 
717
717
  @classmethod
718
- def unmarshal(cls, marshalled: Dict[str, Any]) -> ClearPendingRootsRequest:
718
+ def unmarshal(cls, marshalled: dict[str, Any]) -> ClearPendingRootsRequest:
719
719
  return cls(
720
720
  store_id=bytes32.from_hexstr(marshalled["store_id"]),
721
721
  )
722
722
 
723
- def marshal(self) -> Dict[str, Any]:
723
+ def marshal(self) -> dict[str, Any]:
724
724
  return {
725
725
  "store_id": self.store_id.hex(),
726
726
  }
@@ -738,13 +738,13 @@ class ClearPendingRootsResponse:
738
738
  # status: Status
739
739
 
740
740
  @classmethod
741
- def unmarshal(cls, marshalled: Dict[str, Any]) -> ClearPendingRootsResponse:
741
+ def unmarshal(cls, marshalled: dict[str, Any]) -> ClearPendingRootsResponse:
742
742
  return cls(
743
743
  success=marshalled["success"],
744
744
  root=None if marshalled["root"] is None else Root.unmarshal(marshalled["root"]),
745
745
  )
746
746
 
747
- def marshal(self) -> Dict[str, Any]:
747
+ def marshal(self) -> dict[str, Any]:
748
748
  return {
749
749
  "success": self.success,
750
750
  "root": None if self.root is None else self.root.marshal(),
@@ -764,10 +764,10 @@ class SyncStatus:
764
764
  class PluginRemote:
765
765
  url: str
766
766
  # repr=False to avoid leaking secrets
767
- headers: Dict[str, str] = dataclasses.field(default_factory=dict, hash=False, repr=False)
767
+ headers: dict[str, str] = dataclasses.field(default_factory=dict, hash=False, repr=False)
768
768
 
769
769
  @classmethod
770
- def unmarshal(cls, marshalled: Dict[str, Any]) -> PluginRemote:
770
+ def unmarshal(cls, marshalled: dict[str, Any]) -> PluginRemote:
771
771
  return cls(
772
772
  url=marshalled["url"],
773
773
  headers=marshalled.get("headers", {}),
@@ -776,10 +776,10 @@ class PluginRemote:
776
776
 
777
777
  @dataclasses.dataclass(frozen=True)
778
778
  class PluginStatus:
779
- uploaders: Dict[str, Dict[str, Any]]
780
- downloaders: Dict[str, Dict[str, Any]]
779
+ uploaders: dict[str, dict[str, Any]]
780
+ downloaders: dict[str, dict[str, Any]]
781
781
 
782
- def marshal(self) -> Dict[str, Any]:
782
+ def marshal(self) -> dict[str, Any]:
783
783
  return {
784
784
  "plugin_status": {
785
785
  "uploaders": self.uploaders,
@@ -802,9 +802,9 @@ class UnsubscribeData:
802
802
 
803
803
  @dataclasses.dataclass(frozen=True)
804
804
  class KeysValuesCompressed:
805
- keys_values_hashed: Dict[bytes32, bytes32]
806
- key_hash_to_length: Dict[bytes32, int]
807
- leaf_hash_to_length: Dict[bytes32, int]
805
+ keys_values_hashed: dict[bytes32, bytes32]
806
+ key_hash_to_length: dict[bytes32, int]
807
+ leaf_hash_to_length: dict[bytes32, int]
808
808
  root_hash: Optional[bytes32]
809
809
 
810
810
 
@@ -812,7 +812,7 @@ class KeysValuesCompressed:
812
812
  class KeysPaginationData:
813
813
  total_pages: int
814
814
  total_bytes: int
815
- keys: List[bytes]
815
+ keys: list[bytes]
816
816
  root_hash: Optional[bytes32]
817
817
 
818
818
 
@@ -820,7 +820,7 @@ class KeysPaginationData:
820
820
  class KeysValuesPaginationData:
821
821
  total_pages: int
822
822
  total_bytes: int
823
- keys_values: List[TerminalNode]
823
+ keys_values: list[TerminalNode]
824
824
  root_hash: Optional[bytes32]
825
825
 
826
826
 
@@ -828,7 +828,7 @@ class KeysValuesPaginationData:
828
828
  class KVDiffPaginationData:
829
829
  total_pages: int
830
830
  total_bytes: int
831
- kv_diff: List[DiffData]
831
+ kv_diff: list[DiffData]
832
832
 
833
833
 
834
834
  #
@@ -849,7 +849,7 @@ class HashOnlyProof(Streamable):
849
849
  key_clvm_hash: bytes32
850
850
  value_clvm_hash: bytes32
851
851
  node_hash: bytes32
852
- layers: List[ProofLayer]
852
+ layers: list[ProofLayer]
853
853
 
854
854
  def root(self) -> bytes32:
855
855
  if len(self.layers) == 0:
@@ -857,7 +857,7 @@ class HashOnlyProof(Streamable):
857
857
  return self.layers[-1].combined_hash
858
858
 
859
859
  @classmethod
860
- def from_key_value(cls, key: bytes, value: bytes, node_hash: bytes32, layers: List[ProofLayer]) -> HashOnlyProof:
860
+ def from_key_value(cls, key: bytes, value: bytes, node_hash: bytes32, layers: list[ProofLayer]) -> HashOnlyProof:
861
861
  return cls(
862
862
  key_clvm_hash=Program.to(key).get_tree_hash(),
863
863
  value_clvm_hash=Program.to(value).get_tree_hash(),
@@ -877,21 +877,21 @@ class KeyValueHashes(Streamable):
877
877
  @dataclasses.dataclass(frozen=True)
878
878
  class ProofResultInclusions(Streamable):
879
879
  store_id: bytes32
880
- inclusions: List[KeyValueHashes]
880
+ inclusions: list[KeyValueHashes]
881
881
 
882
882
 
883
883
  @streamable
884
884
  @dataclasses.dataclass(frozen=True)
885
885
  class GetProofRequest(Streamable):
886
886
  store_id: bytes32
887
- keys: List[bytes]
887
+ keys: list[bytes]
888
888
 
889
889
 
890
890
  @streamable
891
891
  @dataclasses.dataclass(frozen=True)
892
892
  class StoreProofsHashes(Streamable):
893
893
  store_id: bytes32
894
- proofs: List[HashOnlyProof]
894
+ proofs: list[HashOnlyProof]
895
895
 
896
896
 
897
897
  @streamable
@@ -917,10 +917,10 @@ class VerifyProofResponse(Streamable):
917
917
  success: bool
918
918
 
919
919
 
920
- def dl_verify_proof_internal(dl_proof: DLProof, puzzle_hash: bytes32) -> List[KeyValueHashes]:
920
+ def dl_verify_proof_internal(dl_proof: DLProof, puzzle_hash: bytes32) -> list[KeyValueHashes]:
921
921
  """Verify a proof of inclusion for a DL singleton"""
922
922
 
923
- verified_keys: List[KeyValueHashes] = []
923
+ verified_keys: list[KeyValueHashes] = []
924
924
 
925
925
  for reference_proof in dl_proof.store_proofs.proofs:
926
926
  inner_puz_hash = dl_proof.inner_puzzle_hash
@@ -962,10 +962,10 @@ def dl_verify_proof_internal(dl_proof: DLProof, puzzle_hash: bytes32) -> List[Ke
962
962
 
963
963
 
964
964
  async def dl_verify_proof(
965
- request: Dict[str, Any],
965
+ request: dict[str, Any],
966
966
  wallet_node: WalletNode,
967
967
  peer: WSChiaConnection,
968
- ) -> Dict[str, Any]:
968
+ ) -> dict[str, Any]:
969
969
  """Verify a proof of inclusion for a DL singleton"""
970
970
 
971
971
  dlproof = DLProof.from_json_dict(request)