chia-blockchain 2.5.2rc2__py3-none-any.whl → 2.5.3rc1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (640) hide show
  1. chia/__init__.py +7 -0
  2. chia/_tests/blockchain/blockchain_test_utils.py +1 -1
  3. chia/_tests/blockchain/test_augmented_chain.py +54 -5
  4. chia/_tests/blockchain/test_blockchain.py +5 -12
  5. chia/_tests/blockchain/test_blockchain_transactions.py +3 -5
  6. chia/_tests/blockchain/test_get_block_generator.py +2 -2
  7. chia/_tests/blockchain/test_lookup_fork_chain.py +2 -2
  8. chia/_tests/clvm/benchmark_costs.py +2 -1
  9. chia/_tests/clvm/coin_store.py +4 -3
  10. chia/_tests/clvm/test_chialisp_deserialization.py +2 -2
  11. chia/_tests/clvm/test_curry_and_treehash.py +1 -1
  12. chia/_tests/clvm/test_puzzle_compression.py +2 -2
  13. chia/_tests/clvm/test_puzzles.py +2 -2
  14. chia/_tests/clvm/test_singletons.py +2 -2
  15. chia/_tests/clvm/test_spend_sim.py +1 -1
  16. chia/_tests/cmds/cmd_test_utils.py +2 -2
  17. chia/_tests/cmds/test_click_types.py +2 -2
  18. chia/_tests/cmds/test_cmd_framework.py +6 -6
  19. chia/_tests/cmds/test_show.py +4 -3
  20. chia/_tests/cmds/test_tx_config_args.py +1 -1
  21. chia/_tests/cmds/testing_classes.py +2 -2
  22. chia/_tests/cmds/wallet/test_consts.py +2 -2
  23. chia/_tests/cmds/wallet/test_did.py +2 -2
  24. chia/_tests/cmds/wallet/test_nft.py +2 -2
  25. chia/_tests/cmds/wallet/test_notifications.py +3 -2
  26. chia/_tests/cmds/wallet/test_vcs.py +2 -2
  27. chia/_tests/cmds/wallet/test_wallet.py +4 -8
  28. chia/_tests/conftest.py +4 -3
  29. chia/_tests/connection_utils.py +2 -2
  30. chia/_tests/core/cmds/test_keys.py +1 -2
  31. chia/_tests/core/cmds/test_wallet.py +2 -2
  32. chia/_tests/core/consensus/test_block_creation.py +2 -2
  33. chia/_tests/core/consensus/test_pot_iterations.py +1 -1
  34. chia/_tests/core/custom_types/test_coin.py +2 -2
  35. chia/_tests/core/custom_types/test_proof_of_space.py +2 -2
  36. chia/_tests/core/custom_types/test_spend_bundle.py +2 -2
  37. chia/_tests/core/data_layer/conftest.py +1 -1
  38. chia/_tests/core/data_layer/test_data_layer.py +1 -1
  39. chia/_tests/core/data_layer/test_data_layer_util.py +1 -1
  40. chia/_tests/core/data_layer/test_data_rpc.py +2 -2
  41. chia/_tests/core/data_layer/test_data_store.py +1 -1
  42. chia/_tests/core/data_layer/test_data_store_schema.py +1 -1
  43. chia/_tests/core/data_layer/util.py +2 -1
  44. chia/_tests/core/farmer/test_farmer_api.py +1 -1
  45. chia/_tests/core/full_node/full_sync/test_full_sync.py +1 -7
  46. chia/_tests/core/full_node/ram_db.py +2 -1
  47. chia/_tests/core/full_node/stores/test_block_store.py +2 -2
  48. chia/_tests/core/full_node/stores/test_coin_store.py +2 -2
  49. chia/_tests/core/full_node/stores/test_full_node_store.py +3 -3
  50. chia/_tests/core/full_node/stores/test_hint_store.py +2 -2
  51. chia/_tests/core/full_node/stores/test_sync_store.py +1 -1
  52. chia/_tests/core/full_node/test_address_manager.py +1 -1
  53. chia/_tests/core/full_node/test_block_height_map.py +2 -2
  54. chia/_tests/core/full_node/test_conditions.py +1 -1
  55. chia/_tests/core/full_node/test_full_node.py +346 -164
  56. chia/_tests/core/full_node/test_generator_tools.py +3 -2
  57. chia/_tests/core/full_node/test_hint_management.py +2 -2
  58. chia/_tests/core/full_node/test_performance.py +2 -15
  59. chia/_tests/core/full_node/test_subscriptions.py +1 -1
  60. chia/_tests/core/full_node/test_transactions.py +186 -185
  61. chia/_tests/core/full_node/test_tx_processing_queue.py +1 -1
  62. chia/_tests/core/make_block_generator.py +2 -2
  63. chia/_tests/core/mempool/test_mempool.py +165 -22
  64. chia/_tests/core/mempool/test_mempool_fee_estimator.py +1 -1
  65. chia/_tests/core/mempool/test_mempool_fee_protocol.py +1 -1
  66. chia/_tests/core/mempool/test_mempool_manager.py +476 -66
  67. chia/_tests/core/mempool/test_mempool_performance.py +2 -2
  68. chia/_tests/core/mempool/test_singleton_fast_forward.py +19 -25
  69. chia/_tests/core/node_height.py +2 -1
  70. chia/_tests/core/server/test_capabilities.py +1 -1
  71. chia/_tests/core/server/test_dos.py +36 -28
  72. chia/_tests/core/server/test_loop.py +3 -3
  73. chia/_tests/core/server/test_rate_limits.py +1 -1
  74. chia/_tests/core/server/test_server.py +2 -2
  75. chia/_tests/core/services/test_services.py +1 -1
  76. chia/_tests/core/ssl/test_ssl.py +1 -1
  77. chia/_tests/core/test_coins.py +2 -1
  78. chia/_tests/core/test_cost_calculation.py +2 -2
  79. chia/_tests/core/test_crawler.py +2 -2
  80. chia/_tests/core/test_db_conversion.py +2 -2
  81. chia/_tests/core/test_db_validation.py +26 -13
  82. chia/_tests/core/test_farmer_harvester_rpc.py +2 -2
  83. chia/_tests/core/test_full_node_rpc.py +2 -2
  84. chia/_tests/core/test_merkle_set.py +2 -2
  85. chia/_tests/core/test_program.py +2 -2
  86. chia/_tests/core/test_rpc_util.py +1 -1
  87. chia/_tests/core/test_seeder.py +1 -1
  88. chia/_tests/core/util/test_block_cache.py +3 -3
  89. chia/_tests/core/util/test_jsonify.py +3 -2
  90. chia/_tests/core/util/test_keychain.py +3 -3
  91. chia/_tests/core/util/test_streamable.py +3 -4
  92. chia/_tests/environments/wallet.py +3 -2
  93. chia/_tests/farmer_harvester/test_farmer.py +3 -4
  94. chia/_tests/farmer_harvester/test_farmer_harvester.py +2 -2
  95. chia/_tests/farmer_harvester/test_filter_prefix_bits.py +2 -2
  96. chia/_tests/farmer_harvester/test_third_party_harvesters.py +3 -4
  97. chia/_tests/fee_estimation/test_fee_estimation_integration.py +1 -1
  98. chia/_tests/fee_estimation/test_fee_estimation_rpc.py +2 -2
  99. chia/_tests/fee_estimation/test_fee_estimation_unit_tests.py +1 -1
  100. chia/_tests/fee_estimation/test_mempoolitem_height_added.py +3 -4
  101. chia/_tests/generator/test_compression.py +20 -10
  102. chia/_tests/generator/test_rom.py +7 -9
  103. chia/_tests/plot_sync/test_delta.py +2 -2
  104. chia/_tests/plot_sync/test_plot_sync.py +2 -2
  105. chia/_tests/plot_sync/test_receiver.py +2 -2
  106. chia/_tests/plot_sync/test_sender.py +2 -2
  107. chia/_tests/plot_sync/test_sync_simulated.py +2 -2
  108. chia/_tests/plot_sync/util.py +3 -2
  109. chia/_tests/plotting/test_plot_manager.py +1 -1
  110. chia/_tests/pools/test_pool_cli_parsing.py +3 -2
  111. chia/_tests/pools/test_pool_cmdline.py +2 -2
  112. chia/_tests/pools/test_pool_puzzles_lifecycle.py +3 -3
  113. chia/_tests/pools/test_pool_rpc.py +4 -5
  114. chia/_tests/pools/test_pool_wallet.py +1 -1
  115. chia/_tests/pools/test_wallet_pool_store.py +2 -2
  116. chia/_tests/rpc/test_rpc_client.py +1 -1
  117. chia/_tests/rpc/test_rpc_server.py +1 -1
  118. chia/_tests/simulation/test_simulation.py +36 -8
  119. chia/_tests/simulation/test_simulator.py +5 -5
  120. chia/_tests/simulation/test_start_simulator.py +2 -2
  121. chia/_tests/timelord/test_new_peak.py +2 -2
  122. chia/_tests/tools/test_run_block.py +3 -2
  123. chia/_tests/util/benchmark_cost.py +2 -2
  124. chia/_tests/util/benchmarks.py +17 -6
  125. chia/_tests/util/blockchain.py +2 -1
  126. chia/_tests/util/blockchain_mock.py +9 -5
  127. chia/_tests/util/build_network_protocol_files.py +2 -1
  128. chia/_tests/util/constants.py +2 -1
  129. chia/_tests/util/full_sync.py +6 -3
  130. chia/_tests/util/gen_ssl_certs.py +2 -2
  131. chia/_tests/util/generator_tools_testing.py +4 -3
  132. chia/_tests/util/get_name_puzzle_conditions.py +2 -2
  133. chia/_tests/util/misc.py +16 -2
  134. chia/_tests/util/network_protocol_data.py +17 -7
  135. chia/_tests/util/run_block.py +6 -8
  136. chia/_tests/util/setup_nodes.py +4 -3
  137. chia/_tests/util/spend_sim.py +9 -5
  138. chia/_tests/util/test_condition_tools.py +2 -2
  139. chia/_tests/util/test_config.py +2 -1
  140. chia/_tests/util/test_errors.py +2 -1
  141. chia/_tests/util/test_full_block_utils.py +17 -7
  142. chia/_tests/util/test_misc.py +1 -1
  143. chia/_tests/util/test_network_protocol_test.py +24 -24
  144. chia/_tests/util/test_replace_str_to_bytes.py +2 -2
  145. chia/_tests/util/test_trusted_peer.py +1 -1
  146. chia/_tests/util/time_out_assert.py +20 -7
  147. chia/_tests/wallet/cat_wallet/test_cat_lifecycle.py +1 -1
  148. chia/_tests/wallet/cat_wallet/test_cat_outer_puzzle.py +2 -2
  149. chia/_tests/wallet/cat_wallet/test_cat_wallet.py +5 -6
  150. chia/_tests/wallet/cat_wallet/test_offer_lifecycle.py +17 -15
  151. chia/_tests/wallet/cat_wallet/test_trades.py +2 -2
  152. chia/_tests/wallet/clawback/test_clawback_lifecycle.py +2 -2
  153. chia/_tests/wallet/clawback/test_clawback_metadata.py +2 -2
  154. chia/_tests/wallet/conftest.py +3 -3
  155. chia/_tests/wallet/db_wallet/test_db_graftroot.py +3 -5
  156. chia/_tests/wallet/db_wallet/test_dl_offers.py +2 -2
  157. chia/_tests/wallet/db_wallet/test_dl_wallet.py +433 -384
  158. chia/_tests/wallet/did_wallet/test_did.py +3 -3
  159. chia/_tests/wallet/nft_wallet/test_nft_1_offers.py +2 -2
  160. chia/_tests/wallet/nft_wallet/test_nft_bulk_mint.py +2 -2
  161. chia/_tests/wallet/nft_wallet/test_nft_lifecycle.py +3 -4
  162. chia/_tests/wallet/nft_wallet/test_nft_offers.py +1293 -703
  163. chia/_tests/wallet/nft_wallet/test_nft_puzzles.py +28 -30
  164. chia/_tests/wallet/nft_wallet/test_nft_wallet.py +2 -2
  165. chia/_tests/wallet/nft_wallet/test_ownership_outer_puzzle.py +2 -2
  166. chia/_tests/wallet/rpc/config.py +1 -1
  167. chia/_tests/wallet/rpc/test_dl_wallet_rpc.py +2 -2
  168. chia/_tests/wallet/rpc/test_wallet_rpc.py +20 -77
  169. chia/_tests/wallet/simple_sync/test_simple_sync_protocol.py +9 -7
  170. chia/_tests/wallet/sync/test_wallet_sync.py +79 -31
  171. chia/_tests/wallet/test_clvm_streamable.py +2 -2
  172. chia/_tests/wallet/test_coin_management.py +7 -7
  173. chia/_tests/wallet/test_coin_selection.py +20 -2
  174. chia/_tests/wallet/test_conditions.py +2 -2
  175. chia/_tests/wallet/test_debug_spend_bundle.py +2 -2
  176. chia/_tests/wallet/test_new_wallet_protocol.py +2 -2
  177. chia/_tests/wallet/test_nft_store.py +2 -2
  178. chia/_tests/wallet/test_notifications.py +2 -2
  179. chia/_tests/wallet/test_puzzle_store.py +2 -2
  180. chia/_tests/wallet/test_sign_coin_spends.py +2 -2
  181. chia/_tests/wallet/test_signer_protocol.py +3 -3
  182. chia/_tests/wallet/test_singleton.py +3 -11
  183. chia/_tests/wallet/test_singleton_lifecycle_fast.py +12 -13
  184. chia/_tests/wallet/test_singleton_store.py +2 -4
  185. chia/_tests/wallet/test_transaction_store.py +2 -2
  186. chia/_tests/wallet/test_util.py +2 -2
  187. chia/_tests/wallet/test_wallet.py +53 -49
  188. chia/_tests/wallet/test_wallet_action_scope.py +24 -6
  189. chia/_tests/wallet/test_wallet_blockchain.py +1 -1
  190. chia/_tests/wallet/test_wallet_coin_store.py +2 -2
  191. chia/_tests/wallet/test_wallet_interested_store.py +2 -2
  192. chia/_tests/wallet/test_wallet_node.py +3 -3
  193. chia/_tests/wallet/test_wallet_retry.py +3 -3
  194. chia/_tests/wallet/test_wallet_state_manager.py +8 -8
  195. chia/_tests/wallet/test_wallet_test_framework.py +1 -1
  196. chia/_tests/wallet/test_wallet_trade_store.py +2 -2
  197. chia/_tests/wallet/test_wallet_utils.py +2 -2
  198. chia/_tests/wallet/vc_wallet/test_cr_outer_puzzle.py +3 -2
  199. chia/_tests/wallet/vc_wallet/test_vc_lifecycle.py +15 -15
  200. chia/_tests/wallet/vc_wallet/test_vc_wallet.py +5 -3
  201. chia/_tests/wallet/wallet_block_tools.py +15 -7
  202. chia/_tests/weight_proof/test_weight_proof.py +3 -3
  203. chia/cmds/chia.py +0 -2
  204. chia/cmds/cmd_classes.py +3 -3
  205. chia/cmds/cmd_helpers.py +4 -4
  206. chia/cmds/cmds_util.py +2 -2
  207. chia/cmds/coin_funcs.py +3 -2
  208. chia/cmds/coins.py +1 -1
  209. chia/cmds/data.py +2 -2
  210. chia/cmds/data_funcs.py +3 -2
  211. chia/cmds/db_upgrade_func.py +2 -2
  212. chia/cmds/db_validate_func.py +15 -8
  213. chia/cmds/farm.py +2 -4
  214. chia/cmds/keys.py +0 -2
  215. chia/cmds/keys_funcs.py +1 -1
  216. chia/cmds/netspace_funcs.py +2 -1
  217. chia/cmds/param_types.py +2 -2
  218. chia/cmds/plotnft.py +2 -2
  219. chia/cmds/plotnft_funcs.py +2 -2
  220. chia/cmds/rpc.py +1 -1
  221. chia/cmds/show.py +1 -2
  222. chia/cmds/show_funcs.py +6 -3
  223. chia/cmds/signer.py +1 -2
  224. chia/cmds/sim.py +1 -2
  225. chia/cmds/sim_funcs.py +2 -2
  226. chia/cmds/wallet.py +2 -2
  227. chia/cmds/wallet_funcs.py +4 -11
  228. chia/consensus/block_body_validation.py +3 -4
  229. chia/consensus/block_creation.py +10 -6
  230. chia/consensus/block_header_validation.py +3 -4
  231. chia/consensus/block_record.py +2 -3
  232. chia/consensus/block_rewards.py +1 -1
  233. chia/consensus/blockchain.py +20 -17
  234. chia/consensus/blockchain_interface.py +5 -4
  235. chia/consensus/coinbase.py +2 -2
  236. chia/consensus/constants.py +1 -1
  237. chia/consensus/cost_calculator.py +2 -1
  238. chia/consensus/default_constants.py +4 -3
  239. chia/consensus/deficit.py +3 -2
  240. chia/consensus/difficulty_adjustment.py +8 -9
  241. chia/consensus/find_fork_point.py +4 -3
  242. chia/consensus/full_block_to_block_record.py +4 -3
  243. chia/consensus/get_block_challenge.py +4 -3
  244. chia/consensus/get_block_generator.py +3 -2
  245. chia/consensus/make_sub_epoch_summary.py +3 -2
  246. chia/consensus/multiprocess_validation.py +9 -4
  247. chia/consensus/pos_quality.py +1 -1
  248. chia/consensus/pot_iterations.py +4 -3
  249. chia/consensus/vdf_info_computation.py +4 -3
  250. chia/daemon/client.py +1 -1
  251. chia/daemon/keychain_server.py +1 -1
  252. chia/daemon/server.py +1 -1
  253. chia/daemon/windows_signal.py +1 -1
  254. chia/data_layer/data_layer.py +4 -3
  255. chia/data_layer/data_layer_errors.py +1 -1
  256. chia/data_layer/data_layer_util.py +2 -2
  257. chia/data_layer/data_layer_wallet.py +47 -69
  258. chia/data_layer/data_store.py +1 -1
  259. chia/data_layer/dl_wallet_store.py +5 -6
  260. chia/data_layer/download_data.py +1 -1
  261. chia/data_layer/s3_plugin_service.py +4 -4
  262. chia/data_layer/singleton_record.py +23 -0
  263. chia/data_layer/util/benchmark.py +2 -1
  264. chia/farmer/farmer.py +4 -6
  265. chia/farmer/farmer_api.py +4 -6
  266. chia/full_node/bitcoin_fee_estimator.py +2 -1
  267. chia/full_node/block_height_map.py +2 -2
  268. chia/full_node/block_store.py +8 -9
  269. chia/{util → full_node}/check_fork_next_block.py +2 -1
  270. chia/full_node/coin_store.py +10 -10
  271. chia/full_node/fee_estimate.py +2 -1
  272. chia/full_node/fee_estimation.py +2 -1
  273. chia/full_node/fee_estimator.py +2 -1
  274. chia/full_node/fee_estimator_interface.py +1 -1
  275. chia/full_node/fee_history.py +2 -1
  276. chia/full_node/fee_tracker.py +2 -1
  277. chia/full_node/full_node.py +15 -13
  278. chia/full_node/full_node_api.py +12 -32
  279. chia/full_node/full_node_store.py +4 -3
  280. chia/full_node/hint_management.py +2 -1
  281. chia/full_node/hint_store.py +3 -3
  282. chia/full_node/mempool.py +79 -12
  283. chia/full_node/mempool_check_conditions.py +6 -7
  284. chia/full_node/mempool_manager.py +168 -21
  285. chia/full_node/pending_tx_cache.py +2 -2
  286. chia/full_node/subscriptions.py +2 -2
  287. chia/full_node/sync_store.py +2 -3
  288. chia/full_node/tx_processing_queue.py +2 -1
  289. chia/full_node/weight_proof.py +5 -8
  290. chia/harvester/harvester.py +5 -3
  291. chia/harvester/harvester_api.py +2 -2
  292. chia/introducer/introducer.py +30 -2
  293. chia/introducer/introducer_api.py +9 -1
  294. chia/legacy/keyring.py +1 -2
  295. chia/plot_sync/exceptions.py +2 -1
  296. chia/plot_sync/receiver.py +2 -2
  297. chia/plot_sync/sender.py +1 -1
  298. chia/plotting/cache.py +2 -2
  299. chia/plotting/check_plots.py +4 -2
  300. chia/plotting/create_plots.py +1 -1
  301. chia/plotting/manager.py +3 -3
  302. chia/plotting/util.py +2 -2
  303. chia/pools/pool_config.py +1 -1
  304. chia/pools/pool_puzzles.py +23 -17
  305. chia/pools/pool_wallet.py +22 -9
  306. chia/pools/pool_wallet_info.py +2 -2
  307. chia/protocols/farmer_protocol.py +3 -6
  308. chia/protocols/full_node_protocol.py +3 -2
  309. chia/protocols/harvester_protocol.py +3 -4
  310. chia/protocols/pool_protocol.py +2 -2
  311. chia/protocols/shared_protocol.py +2 -1
  312. chia/protocols/timelord_protocol.py +4 -4
  313. chia/protocols/wallet_protocol.py +2 -2
  314. chia/rpc/data_layer_rpc_api.py +3 -4
  315. chia/rpc/data_layer_rpc_client.py +3 -2
  316. chia/rpc/farmer_rpc_api.py +2 -2
  317. chia/rpc/farmer_rpc_client.py +2 -1
  318. chia/rpc/full_node_rpc_api.py +3 -2
  319. chia/rpc/full_node_rpc_client.py +3 -2
  320. chia/rpc/harvester_rpc_api.py +2 -1
  321. chia/rpc/rpc_client.py +2 -2
  322. chia/rpc/rpc_server.py +1 -1
  323. chia/rpc/wallet_request_types.py +2 -62
  324. chia/rpc/wallet_rpc_api.py +98 -628
  325. chia/rpc/wallet_rpc_client.py +5 -253
  326. chia/seeder/crawl_store.py +1 -1
  327. chia/seeder/crawler.py +2 -2
  328. chia/seeder/peer_record.py +2 -1
  329. chia/seeder/start_crawler.py +3 -1
  330. chia/server/address_manager.py +2 -1
  331. chia/server/address_manager_store.py +1 -1
  332. chia/server/capabilities.py +2 -1
  333. chia/server/introducer_peers.py +2 -1
  334. chia/server/node_discovery.py +1 -1
  335. chia/server/outbound_message.py +2 -1
  336. chia/server/server.py +2 -2
  337. chia/server/start_data_layer.py +2 -1
  338. chia/server/start_farmer.py +3 -1
  339. chia/server/start_full_node.py +4 -2
  340. chia/server/start_harvester.py +3 -1
  341. chia/server/start_introducer.py +12 -1
  342. chia/server/start_service.py +2 -1
  343. chia/server/start_timelord.py +3 -1
  344. chia/server/start_wallet.py +3 -1
  345. chia/server/upnp.py +1 -2
  346. chia/server/ws_connection.py +3 -4
  347. chia/simulator/add_blocks_in_batches.py +5 -3
  348. chia/simulator/block_tools.py +16 -12
  349. chia/simulator/full_node_simulator.py +9 -14
  350. chia/simulator/setup_services.py +5 -3
  351. chia/simulator/simulator_full_node_rpc_api.py +3 -2
  352. chia/simulator/simulator_full_node_rpc_client.py +3 -2
  353. chia/simulator/simulator_protocol.py +3 -2
  354. chia/simulator/simulator_test_tools.py +2 -2
  355. chia/simulator/start_simulator.py +3 -2
  356. chia/simulator/wallet_tools.py +3 -4
  357. chia/timelord/iters_from_block.py +4 -4
  358. chia/timelord/timelord.py +7 -12
  359. chia/timelord/timelord_api.py +3 -3
  360. chia/timelord/timelord_state.py +4 -3
  361. chia/types/block_protocol.py +2 -2
  362. chia/types/blockchain_format/coin.py +2 -2
  363. chia/types/blockchain_format/program.py +1 -1
  364. chia/types/blockchain_format/proof_of_space.py +3 -4
  365. chia/types/blockchain_format/tree_hash.py +1 -1
  366. chia/types/blockchain_format/vdf.py +3 -4
  367. chia/types/clvm_cost.py +1 -1
  368. chia/types/coin_record.py +4 -3
  369. chia/types/coin_spend.py +1 -1
  370. chia/types/eligible_coin_spends.py +9 -5
  371. chia/types/fee_rate.py +1 -1
  372. chia/types/generator_types.py +3 -3
  373. chia/types/internal_mempool_item.py +3 -2
  374. chia/types/mempool_item.py +10 -3
  375. chia/types/mempool_submission_status.py +2 -1
  376. chia/types/mojos.py +1 -1
  377. chia/types/peer_info.py +2 -1
  378. chia/types/transaction_queue_entry.py +2 -1
  379. chia/types/unfinished_header_block.py +4 -4
  380. chia/types/validation_state.py +2 -1
  381. chia/types/weight_proof.py +1 -9
  382. chia/util/augmented_chain.py +20 -9
  383. chia/util/block_cache.py +8 -4
  384. chia/util/condition_tools.py +2 -2
  385. chia/util/full_block_utils.py +3 -4
  386. chia/util/generator_tools.py +2 -2
  387. chia/util/initial-config.yaml +2 -11
  388. chia/util/network.py +2 -2
  389. chia/util/prev_transaction_block.py +2 -1
  390. chia/util/task_timing.py +1 -1
  391. chia/util/vdf_prover.py +3 -3
  392. chia/util/ws_message.py +1 -1
  393. chia/wallet/cat_wallet/cat_info.py +3 -2
  394. chia/wallet/cat_wallet/cat_outer_puzzle.py +3 -2
  395. chia/wallet/cat_wallet/cat_utils.py +6 -4
  396. chia/wallet/cat_wallet/cat_wallet.py +16 -18
  397. chia/wallet/cat_wallet/lineage_store.py +2 -1
  398. chia/wallet/coin_selection.py +5 -5
  399. chia/wallet/conditions.py +22 -16
  400. chia/wallet/db_wallet/db_wallet_puzzles.py +15 -15
  401. chia/wallet/derivation_record.py +2 -2
  402. chia/wallet/derive_keys.py +2 -2
  403. chia/wallet/did_wallet/did_info.py +3 -2
  404. chia/wallet/did_wallet/did_wallet.py +41 -19
  405. chia/wallet/did_wallet/did_wallet_puzzles.py +18 -12
  406. chia/wallet/driver_protocol.py +1 -1
  407. chia/wallet/lineage_proof.py +3 -2
  408. chia/wallet/nft_wallet/metadata_outer_puzzle.py +6 -7
  409. chia/wallet/nft_wallet/nft_info.py +5 -5
  410. chia/wallet/nft_wallet/nft_puzzle_utils.py +293 -0
  411. chia/wallet/nft_wallet/nft_puzzles.py +21 -298
  412. chia/wallet/nft_wallet/nft_wallet.py +47 -62
  413. chia/wallet/nft_wallet/ownership_outer_puzzle.py +4 -8
  414. chia/wallet/nft_wallet/singleton_outer_puzzle.py +3 -2
  415. chia/wallet/nft_wallet/transfer_program_puzzle.py +6 -10
  416. chia/wallet/nft_wallet/uncurry_nft.py +6 -8
  417. chia/wallet/notification_manager.py +5 -5
  418. chia/wallet/notification_store.py +3 -2
  419. chia/wallet/outer_puzzles.py +2 -1
  420. chia/wallet/puzzles/clawback/drivers.py +21 -8
  421. chia/wallet/puzzles/clawback/metadata.py +3 -2
  422. chia/wallet/puzzles/clawback/puzzle_decorator.py +5 -4
  423. chia/wallet/puzzles/deployed_puzzle_hashes.json +0 -10
  424. chia/wallet/puzzles/p2_conditions.py +3 -2
  425. chia/wallet/puzzles/p2_delegated_conditions.py +3 -2
  426. chia/wallet/puzzles/p2_delegated_puzzle.py +3 -2
  427. chia/wallet/puzzles/p2_delegated_puzzle_or_hidden_puzzle.py +3 -3
  428. chia/wallet/puzzles/p2_m_of_n_delegate_direct.py +3 -2
  429. chia/wallet/puzzles/p2_puzzle_hash.py +4 -3
  430. chia/wallet/puzzles/puzzle_utils.py +3 -2
  431. chia/wallet/puzzles/singleton_top_layer.py +26 -10
  432. chia/wallet/puzzles/singleton_top_layer_v1_1.py +21 -9
  433. chia/wallet/puzzles/tails.py +21 -129
  434. chia/wallet/signer_protocol.py +3 -2
  435. chia/wallet/singleton.py +12 -6
  436. chia/wallet/singleton_record.py +3 -2
  437. chia/wallet/trade_manager.py +31 -55
  438. chia/wallet/trade_record.py +3 -2
  439. chia/wallet/trading/offer.py +14 -13
  440. chia/wallet/trading/trade_store.py +3 -4
  441. chia/wallet/transaction_record.py +2 -2
  442. chia/wallet/util/blind_signer_tl.py +3 -2
  443. chia/wallet/util/compute_hints.py +3 -2
  444. chia/wallet/util/compute_memos.py +2 -2
  445. chia/wallet/util/curry_and_treehash.py +1 -2
  446. chia/wallet/util/merkle_tree.py +1 -1
  447. chia/wallet/util/merkle_utils.py +1 -1
  448. chia/wallet/util/new_peak_queue.py +2 -1
  449. chia/wallet/util/notifications.py +5 -4
  450. chia/wallet/util/peer_request_cache.py +3 -2
  451. chia/wallet/util/puzzle_compression.py +6 -4
  452. chia/wallet/util/puzzle_decorator.py +6 -4
  453. chia/wallet/util/query_filter.py +3 -2
  454. chia/wallet/util/tx_config.py +3 -3
  455. chia/wallet/util/wallet_sync_utils.py +2 -2
  456. chia/wallet/util/wallet_types.py +2 -3
  457. chia/wallet/vc_wallet/cr_cat_drivers.py +18 -22
  458. chia/wallet/vc_wallet/cr_cat_wallet.py +14 -10
  459. chia/wallet/vc_wallet/cr_outer_puzzle.py +2 -2
  460. chia/wallet/vc_wallet/vc_drivers.py +50 -68
  461. chia/wallet/vc_wallet/vc_store.py +2 -2
  462. chia/wallet/vc_wallet/vc_wallet.py +47 -15
  463. chia/wallet/wallet.py +51 -46
  464. chia/wallet/wallet_action_scope.py +4 -0
  465. chia/wallet/wallet_blockchain.py +12 -7
  466. chia/wallet/wallet_coin_record.py +3 -2
  467. chia/wallet/wallet_coin_store.py +3 -2
  468. chia/wallet/wallet_info.py +2 -1
  469. chia/wallet/wallet_interested_store.py +3 -2
  470. chia/wallet/wallet_nft_store.py +4 -4
  471. chia/wallet/wallet_node.py +3 -4
  472. chia/wallet/wallet_pool_store.py +3 -4
  473. chia/wallet/wallet_protocol.py +19 -5
  474. chia/wallet/wallet_puzzle_store.py +2 -2
  475. chia/wallet/wallet_retry_store.py +3 -6
  476. chia/wallet/wallet_singleton_store.py +2 -2
  477. chia/wallet/wallet_state_manager.py +20 -197
  478. chia/wallet/wallet_transaction_store.py +2 -2
  479. chia/wallet/wallet_user_store.py +2 -1
  480. chia/wallet/wallet_weight_proof_handler.py +3 -2
  481. {chia_blockchain-2.5.2rc2.dist-info → chia_blockchain-2.5.3rc1.dist-info}/METADATA +3 -2
  482. chia_blockchain-2.5.3rc1.dist-info/RECORD +891 -0
  483. mozilla-ca/cacert.pem +64 -33
  484. chia/_tests/clvm/test_condition_codes.py +0 -13
  485. chia/_tests/cmds/wallet/test_dao.py +0 -565
  486. chia/_tests/wallet/dao_wallet/__init__.py +0 -0
  487. chia/_tests/wallet/dao_wallet/config.py +0 -3
  488. chia/_tests/wallet/dao_wallet/test_dao_clvm.py +0 -1330
  489. chia/_tests/wallet/dao_wallet/test_dao_wallets.py +0 -3488
  490. chia/cmds/dao.py +0 -1064
  491. chia/cmds/dao_funcs.py +0 -598
  492. chia/consensus/puzzles/__init__.py +0 -0
  493. chia/consensus/puzzles/chialisp_deserialisation.clsp +0 -69
  494. chia/consensus/puzzles/chialisp_deserialisation.clsp.hex +0 -1
  495. chia/consensus/puzzles/rom_bootstrap_generator.clsp +0 -37
  496. chia/consensus/puzzles/rom_bootstrap_generator.clsp.hex +0 -1
  497. chia/full_node/puzzles/__init__.py +0 -0
  498. chia/full_node/puzzles/block_program_zero.clsp +0 -14
  499. chia/full_node/puzzles/block_program_zero.clsp.hex +0 -1
  500. chia/full_node/puzzles/decompress_coin_spend_entry.clsp +0 -5
  501. chia/full_node/puzzles/decompress_coin_spend_entry.clsp.hex +0 -1
  502. chia/full_node/puzzles/decompress_coin_spend_entry_with_prefix.clsp +0 -7
  503. chia/full_node/puzzles/decompress_coin_spend_entry_with_prefix.clsp.hex +0 -1
  504. chia/full_node/puzzles/decompress_puzzle.clsp +0 -6
  505. chia/full_node/puzzles/decompress_puzzle.clsp.hex +0 -1
  506. chia/pools/puzzles/__init__.py +0 -0
  507. chia/pools/puzzles/pool_member_innerpuz.clsp +0 -70
  508. chia/pools/puzzles/pool_member_innerpuz.clsp.hex +0 -1
  509. chia/pools/puzzles/pool_waitingroom_innerpuz.clsp +0 -69
  510. chia/pools/puzzles/pool_waitingroom_innerpuz.clsp.hex +0 -1
  511. chia/simulator/simulator_constants.py +0 -13
  512. chia/types/blockchain_format/foliage.py +0 -8
  513. chia/types/blockchain_format/pool_target.py +0 -5
  514. chia/types/blockchain_format/reward_chain_block.py +0 -6
  515. chia/types/blockchain_format/sized_bytes.py +0 -11
  516. chia/util/ints.py +0 -19
  517. chia/wallet/cat_wallet/dao_cat_info.py +0 -28
  518. chia/wallet/cat_wallet/dao_cat_wallet.py +0 -669
  519. chia/wallet/cat_wallet/puzzles/__init__.py +0 -0
  520. chia/wallet/cat_wallet/puzzles/cat_truths.clib +0 -31
  521. chia/wallet/cat_wallet/puzzles/cat_v2.clsp +0 -397
  522. chia/wallet/cat_wallet/puzzles/cat_v2.clsp.hex +0 -1
  523. chia/wallet/cat_wallet/puzzles/delegated_tail.clsp +0 -25
  524. chia/wallet/cat_wallet/puzzles/delegated_tail.clsp.hex +0 -1
  525. chia/wallet/cat_wallet/puzzles/everything_with_signature.clsp +0 -15
  526. chia/wallet/cat_wallet/puzzles/everything_with_signature.clsp.hex +0 -1
  527. chia/wallet/cat_wallet/puzzles/genesis_by_coin_id.clsp +0 -26
  528. chia/wallet/cat_wallet/puzzles/genesis_by_coin_id.clsp.hex +0 -1
  529. chia/wallet/cat_wallet/puzzles/genesis_by_coin_id_or_singleton.clsp +0 -42
  530. chia/wallet/cat_wallet/puzzles/genesis_by_coin_id_or_singleton.clsp.hex +0 -1
  531. chia/wallet/cat_wallet/puzzles/genesis_by_puzzle_hash.clsp +0 -24
  532. chia/wallet/cat_wallet/puzzles/genesis_by_puzzle_hash.clsp.hex +0 -1
  533. chia/wallet/dao_wallet/__init__.py +0 -0
  534. chia/wallet/dao_wallet/dao_info.py +0 -61
  535. chia/wallet/dao_wallet/dao_utils.py +0 -811
  536. chia/wallet/dao_wallet/dao_wallet.py +0 -2119
  537. chia/wallet/did_wallet/puzzles/__init__.py +0 -0
  538. chia/wallet/did_wallet/puzzles/did_innerpuz.clsp +0 -135
  539. chia/wallet/did_wallet/puzzles/did_innerpuz.clsp.hex +0 -1
  540. chia/wallet/payment.py +0 -33
  541. chia/wallet/puzzles/augmented_condition.clsp +0 -13
  542. chia/wallet/puzzles/augmented_condition.clsp.hex +0 -1
  543. chia/wallet/puzzles/condition_codes.clib +0 -77
  544. chia/wallet/puzzles/curry-and-treehash.clib +0 -102
  545. chia/wallet/puzzles/curry.clib +0 -135
  546. chia/wallet/puzzles/curry_by_index.clib +0 -16
  547. chia/wallet/puzzles/dao_cat_eve.clsp +0 -17
  548. chia/wallet/puzzles/dao_cat_eve.clsp.hex +0 -1
  549. chia/wallet/puzzles/dao_cat_launcher.clsp +0 -36
  550. chia/wallet/puzzles/dao_cat_launcher.clsp.hex +0 -1
  551. chia/wallet/puzzles/dao_finished_state.clsp +0 -35
  552. chia/wallet/puzzles/dao_finished_state.clsp.hex +0 -1
  553. chia/wallet/puzzles/dao_finished_state.clsp.hex.sha256tree +0 -1
  554. chia/wallet/puzzles/dao_lockup.clsp +0 -288
  555. chia/wallet/puzzles/dao_lockup.clsp.hex +0 -1
  556. chia/wallet/puzzles/dao_lockup.clsp.hex.sha256tree +0 -1
  557. chia/wallet/puzzles/dao_proposal.clsp +0 -377
  558. chia/wallet/puzzles/dao_proposal.clsp.hex +0 -1
  559. chia/wallet/puzzles/dao_proposal.clsp.hex.sha256tree +0 -1
  560. chia/wallet/puzzles/dao_proposal_timer.clsp +0 -78
  561. chia/wallet/puzzles/dao_proposal_timer.clsp.hex +0 -1
  562. chia/wallet/puzzles/dao_proposal_timer.clsp.hex.sha256tree +0 -1
  563. chia/wallet/puzzles/dao_proposal_validator.clsp +0 -87
  564. chia/wallet/puzzles/dao_proposal_validator.clsp.hex +0 -1
  565. chia/wallet/puzzles/dao_proposal_validator.clsp.hex.sha256tree +0 -1
  566. chia/wallet/puzzles/dao_spend_p2_singleton_v2.clsp +0 -240
  567. chia/wallet/puzzles/dao_spend_p2_singleton_v2.clsp.hex +0 -1
  568. chia/wallet/puzzles/dao_spend_p2_singleton_v2.clsp.hex.sha256tree +0 -1
  569. chia/wallet/puzzles/dao_treasury.clsp +0 -115
  570. chia/wallet/puzzles/dao_treasury.clsp.hex +0 -1
  571. chia/wallet/puzzles/dao_update_proposal.clsp +0 -44
  572. chia/wallet/puzzles/dao_update_proposal.clsp.hex +0 -1
  573. chia/wallet/puzzles/json.clib +0 -25
  574. chia/wallet/puzzles/merkle_utils.clib +0 -18
  575. chia/wallet/puzzles/notification.clsp +0 -7
  576. chia/wallet/puzzles/notification.clsp.hex +0 -1
  577. chia/wallet/puzzles/p2_1_of_n.clsp +0 -22
  578. chia/wallet/puzzles/p2_1_of_n.clsp.hex +0 -1
  579. chia/wallet/puzzles/p2_conditions.clsp +0 -3
  580. chia/wallet/puzzles/p2_conditions.clsp.hex +0 -1
  581. chia/wallet/puzzles/p2_delegated_conditions.clsp +0 -18
  582. chia/wallet/puzzles/p2_delegated_conditions.clsp.hex +0 -1
  583. chia/wallet/puzzles/p2_delegated_puzzle.clsp +0 -19
  584. chia/wallet/puzzles/p2_delegated_puzzle.clsp.hex +0 -1
  585. chia/wallet/puzzles/p2_delegated_puzzle_or_hidden_puzzle.clsp +0 -91
  586. chia/wallet/puzzles/p2_delegated_puzzle_or_hidden_puzzle.clsp.hex +0 -1
  587. chia/wallet/puzzles/p2_m_of_n_delegate_direct.clsp +0 -108
  588. chia/wallet/puzzles/p2_m_of_n_delegate_direct.clsp.hex +0 -1
  589. chia/wallet/puzzles/p2_parent.clsp +0 -19
  590. chia/wallet/puzzles/p2_parent.clsp.hex +0 -1
  591. chia/wallet/puzzles/p2_puzzle_hash.clsp +0 -18
  592. chia/wallet/puzzles/p2_puzzle_hash.clsp.hex +0 -1
  593. chia/wallet/puzzles/p2_singleton.clsp +0 -30
  594. chia/wallet/puzzles/p2_singleton.clsp.hex +0 -1
  595. chia/wallet/puzzles/p2_singleton_aggregator.clsp +0 -81
  596. chia/wallet/puzzles/p2_singleton_aggregator.clsp.hex +0 -1
  597. chia/wallet/puzzles/p2_singleton_or_delayed_puzhash.clsp +0 -50
  598. chia/wallet/puzzles/p2_singleton_or_delayed_puzhash.clsp.hex +0 -1
  599. chia/wallet/puzzles/p2_singleton_via_delegated_puzzle.clsp +0 -47
  600. chia/wallet/puzzles/p2_singleton_via_delegated_puzzle.clsp.hex +0 -1
  601. chia/wallet/puzzles/settlement_payments.clsp +0 -49
  602. chia/wallet/puzzles/settlement_payments.clsp.hex +0 -1
  603. chia/wallet/puzzles/sha256tree.clib +0 -11
  604. chia/wallet/puzzles/singleton_launcher.clsp +0 -16
  605. chia/wallet/puzzles/singleton_launcher.clsp.hex +0 -1
  606. chia/wallet/puzzles/singleton_top_layer.clsp +0 -177
  607. chia/wallet/puzzles/singleton_top_layer.clsp.hex +0 -1
  608. chia/wallet/puzzles/singleton_top_layer_v1_1.clsp +0 -107
  609. chia/wallet/puzzles/singleton_top_layer_v1_1.clsp.hex +0 -1
  610. chia/wallet/puzzles/singleton_truths.clib +0 -21
  611. chia/wallet/vc_wallet/cr_puzzles/__init__.py +0 -0
  612. chia/wallet/vc_wallet/cr_puzzles/conditions_w_fee_announce.clsp +0 -3
  613. chia/wallet/vc_wallet/cr_puzzles/conditions_w_fee_announce.clsp.hex +0 -1
  614. chia/wallet/vc_wallet/cr_puzzles/credential_restriction.clsp +0 -304
  615. chia/wallet/vc_wallet/cr_puzzles/credential_restriction.clsp.hex +0 -1
  616. chia/wallet/vc_wallet/cr_puzzles/flag_proofs_checker.clsp +0 -45
  617. chia/wallet/vc_wallet/cr_puzzles/flag_proofs_checker.clsp.hex +0 -1
  618. chia/wallet/vc_wallet/vc_puzzles/__init__.py +0 -0
  619. chia/wallet/vc_wallet/vc_puzzles/covenant_layer.clsp +0 -30
  620. chia/wallet/vc_wallet/vc_puzzles/covenant_layer.clsp.hex +0 -1
  621. chia/wallet/vc_wallet/vc_puzzles/eml_covenant_morpher.clsp +0 -75
  622. chia/wallet/vc_wallet/vc_puzzles/eml_covenant_morpher.clsp.hex +0 -1
  623. chia/wallet/vc_wallet/vc_puzzles/eml_transfer_program_covenant_adapter.clsp +0 -32
  624. chia/wallet/vc_wallet/vc_puzzles/eml_transfer_program_covenant_adapter.clsp.hex +0 -1
  625. chia/wallet/vc_wallet/vc_puzzles/eml_update_metadata_with_DID.clsp +0 -80
  626. chia/wallet/vc_wallet/vc_puzzles/eml_update_metadata_with_DID.clsp.hex +0 -1
  627. chia/wallet/vc_wallet/vc_puzzles/exigent_metadata_layer.clsp +0 -163
  628. chia/wallet/vc_wallet/vc_puzzles/exigent_metadata_layer.clsp.hex +0 -1
  629. chia/wallet/vc_wallet/vc_puzzles/p2_announced_delegated_puzzle.clsp +0 -16
  630. chia/wallet/vc_wallet/vc_puzzles/p2_announced_delegated_puzzle.clsp.hex +0 -1
  631. chia/wallet/vc_wallet/vc_puzzles/standard_vc_backdoor_puzzle.clsp +0 -74
  632. chia/wallet/vc_wallet/vc_puzzles/standard_vc_backdoor_puzzle.clsp.hex +0 -1
  633. chia/wallet/vc_wallet/vc_puzzles/std_parent_morpher.clsp +0 -23
  634. chia/wallet/vc_wallet/vc_puzzles/std_parent_morpher.clsp.hex +0 -1
  635. chia/wallet/vc_wallet/vc_puzzles/viral_backdoor.clsp +0 -64
  636. chia/wallet/vc_wallet/vc_puzzles/viral_backdoor.clsp.hex +0 -1
  637. chia_blockchain-2.5.2rc2.dist-info/RECORD +0 -1042
  638. {chia_blockchain-2.5.2rc2.dist-info → chia_blockchain-2.5.3rc1.dist-info}/LICENSE +0 -0
  639. {chia_blockchain-2.5.2rc2.dist-info → chia_blockchain-2.5.3rc1.dist-info}/WHEEL +0 -0
  640. {chia_blockchain-2.5.2rc2.dist-info → chia_blockchain-2.5.3rc1.dist-info}/entry_points.txt +0 -0
@@ -14,11 +14,12 @@ This roughly corresponds to bitcoin's graftroot.
14
14
 
15
15
  from __future__ import annotations
16
16
 
17
+ from chia_puzzles_py.programs import P2_DELEGATED_PUZZLE
18
+
17
19
  from chia.types.blockchain_format.program import Program
18
20
  from chia.wallet.puzzles import p2_conditions
19
- from chia.wallet.puzzles.load_clvm import load_clvm_maybe_recompile
20
21
 
21
- MOD = load_clvm_maybe_recompile("p2_delegated_puzzle.clsp")
22
+ MOD = Program.from_bytes(P2_DELEGATED_PUZZLE)
22
23
 
23
24
 
24
25
  def puzzle_for_pk(public_key: bytes) -> Program:
@@ -62,12 +62,12 @@ import hashlib
62
62
  from functools import lru_cache
63
63
  from typing import Union
64
64
 
65
+ from chia_puzzles_py.programs import P2_DELEGATED_PUZZLE_OR_HIDDEN_PUZZLE
65
66
  from chia_rs import G1Element, PrivateKey
67
+ from chia_rs.sized_bytes import bytes32
66
68
  from clvm.casts import int_from_bytes
67
69
 
68
70
  from chia.types.blockchain_format.program import Program
69
- from chia.types.blockchain_format.sized_bytes import bytes32
70
- from chia.wallet.puzzles.load_clvm import load_clvm_maybe_recompile
71
71
  from chia.wallet.puzzles.p2_conditions import puzzle_for_conditions
72
72
  from chia.wallet.util.curry_and_treehash import calculate_hash_of_quoted_mod_hash, curry_and_treehash, shatree_atom
73
73
 
@@ -75,7 +75,7 @@ DEFAULT_HIDDEN_PUZZLE = Program.from_bytes(bytes.fromhex("ff0980"))
75
75
 
76
76
  DEFAULT_HIDDEN_PUZZLE_HASH = DEFAULT_HIDDEN_PUZZLE.get_tree_hash() # this puzzle `(=)` always fails
77
77
 
78
- MOD = load_clvm_maybe_recompile("p2_delegated_puzzle_or_hidden_puzzle.clsp")
78
+ MOD = Program.from_bytes(P2_DELEGATED_PUZZLE_OR_HIDDEN_PUZZLE)
79
79
 
80
80
  QUOTED_MOD_HASH = calculate_hash_of_quoted_mod_hash(MOD.get_tree_hash())
81
81
 
@@ -7,10 +7,11 @@ it includes N public keys, any M of which needs to sign the delegated puzzle.
7
7
 
8
8
  from __future__ import annotations
9
9
 
10
+ from chia_puzzles_py.programs import P2_M_OF_N_DELEGATE_DIRECT
11
+
10
12
  from chia.types.blockchain_format.program import Program
11
- from chia.wallet.puzzles.load_clvm import load_clvm_maybe_recompile
12
13
 
13
- MOD = load_clvm_maybe_recompile("p2_m_of_n_delegate_direct.clsp")
14
+ MOD = Program.from_bytes(P2_M_OF_N_DELEGATE_DIRECT)
14
15
 
15
16
 
16
17
  def puzzle_for_m_of_public_key_list(m, public_key_list) -> Program:
@@ -7,11 +7,12 @@ hash along with its solution.
7
7
 
8
8
  from __future__ import annotations
9
9
 
10
+ from chia_puzzles_py.programs import P2_PUZZLE_HASH
11
+ from chia_rs.sized_bytes import bytes32
12
+
10
13
  from chia.types.blockchain_format.program import Program
11
- from chia.types.blockchain_format.sized_bytes import bytes32
12
- from chia.wallet.puzzles.load_clvm import load_clvm_maybe_recompile
13
14
 
14
- MOD = load_clvm_maybe_recompile("p2_puzzle_hash.clsp")
15
+ MOD = Program.from_bytes(P2_PUZZLE_HASH)
15
16
 
16
17
 
17
18
  def puzzle_for_inner_puzzle_hash(inner_puzzle_hash: bytes32) -> Program:
@@ -2,9 +2,10 @@ from __future__ import annotations
2
2
 
3
3
  from typing import Any
4
4
 
5
- from chia.types.blockchain_format.sized_bytes import bytes32
5
+ from chia_rs.sized_bytes import bytes32
6
+ from chia_rs.sized_ints import uint64
7
+
6
8
  from chia.types.condition_opcodes import ConditionOpcode
7
- from chia.util.ints import uint64
8
9
 
9
10
 
10
11
  def make_create_coin_condition(puzzle_hash: bytes32, amount: uint64, memos: list[bytes]) -> list[Any]:
@@ -3,22 +3,38 @@ from __future__ import annotations
3
3
  from collections.abc import Iterator
4
4
  from typing import Optional
5
5
 
6
+ from chia_puzzles_py.programs import (
7
+ P2_SINGLETON,
8
+ P2_SINGLETON_HASH,
9
+ P2_SINGLETON_OR_DELAYED_PUZHASH,
10
+ P2_SINGLETON_OR_DELAYED_PUZHASH_HASH,
11
+ SINGLETON_TOP_LAYER,
12
+ SINGLETON_TOP_LAYER_HASH,
13
+ )
14
+ from chia_puzzles_py.programs import (
15
+ SINGLETON_LAUNCHER as SINGLETON_LAUNCHER_BYTES,
16
+ )
17
+ from chia_puzzles_py.programs import (
18
+ SINGLETON_LAUNCHER_HASH as SINGLETON_LAUNCHER_HASH_BYTES,
19
+ )
20
+ from chia_rs.sized_bytes import bytes32
21
+ from chia_rs.sized_ints import uint64
22
+
6
23
  from chia.types.blockchain_format.coin import Coin
7
24
  from chia.types.blockchain_format.program import Program
8
- from chia.types.blockchain_format.sized_bytes import bytes32
9
25
  from chia.types.coin_spend import CoinSpend, make_spend
10
26
  from chia.types.condition_opcodes import ConditionOpcode
11
27
  from chia.util.hash import std_hash
12
- from chia.util.ints import uint64
13
28
  from chia.wallet.lineage_proof import LineageProof
14
- from chia.wallet.puzzles.load_clvm import load_clvm_maybe_recompile
15
-
16
- SINGLETON_MOD = load_clvm_maybe_recompile("singleton_top_layer.clsp")
17
- SINGLETON_MOD_HASH = SINGLETON_MOD.get_tree_hash()
18
- P2_SINGLETON_MOD = load_clvm_maybe_recompile("p2_singleton.clsp")
19
- P2_SINGLETON_OR_DELAYED_MOD = load_clvm_maybe_recompile("p2_singleton_or_delayed_puzhash.clsp")
20
- SINGLETON_LAUNCHER = load_clvm_maybe_recompile("singleton_launcher.clsp")
21
- SINGLETON_LAUNCHER_HASH = SINGLETON_LAUNCHER.get_tree_hash()
29
+
30
+ SINGLETON_MOD = Program.from_bytes(SINGLETON_TOP_LAYER)
31
+ SINGLETON_MOD_HASH = bytes32(SINGLETON_TOP_LAYER_HASH)
32
+ P2_SINGLETON_MOD = Program.from_bytes(P2_SINGLETON)
33
+ P2_SINGLETON_MOD_HASH = bytes32(P2_SINGLETON_HASH)
34
+ P2_SINGLETON_OR_DELAYED_MOD = Program.from_bytes(P2_SINGLETON_OR_DELAYED_PUZHASH)
35
+ P2_SINGLETON_OR_DELAYED_MOD_HASH = bytes32(P2_SINGLETON_OR_DELAYED_PUZHASH_HASH)
36
+ SINGLETON_LAUNCHER = Program.from_bytes(SINGLETON_LAUNCHER_BYTES)
37
+ SINGLETON_LAUNCHER_HASH = bytes32(SINGLETON_LAUNCHER_HASH_BYTES)
22
38
  ESCAPE_VALUE = -113
23
39
  MELT_CONDITION = [ConditionOpcode.CREATE_COIN, 0, ESCAPE_VALUE]
24
40
 
@@ -3,23 +3,35 @@ from __future__ import annotations
3
3
  from collections.abc import Iterator
4
4
  from typing import Optional
5
5
 
6
+ from chia_puzzles_py.programs import (
7
+ P2_SINGLETON,
8
+ P2_SINGLETON_OR_DELAYED_PUZHASH,
9
+ SINGLETON_TOP_LAYER_V1_1,
10
+ SINGLETON_TOP_LAYER_V1_1_HASH,
11
+ )
12
+ from chia_puzzles_py.programs import (
13
+ SINGLETON_LAUNCHER as SINGLETON_LAUNCHER_BYTES,
14
+ )
15
+ from chia_puzzles_py.programs import (
16
+ SINGLETON_LAUNCHER_HASH as SINGLETON_LAUNCHER_HASH_BYTES,
17
+ )
18
+ from chia_rs.sized_bytes import bytes32
19
+ from chia_rs.sized_ints import uint64
20
+
6
21
  from chia.types.blockchain_format.coin import Coin
7
22
  from chia.types.blockchain_format.program import Program
8
- from chia.types.blockchain_format.sized_bytes import bytes32
9
23
  from chia.types.coin_spend import CoinSpend, make_spend
10
24
  from chia.types.condition_opcodes import ConditionOpcode
11
25
  from chia.util.hash import std_hash
12
- from chia.util.ints import uint64
13
26
  from chia.wallet.lineage_proof import LineageProof
14
- from chia.wallet.puzzles.load_clvm import load_clvm_maybe_recompile
15
27
  from chia.wallet.uncurried_puzzle import UncurriedPuzzle
16
28
 
17
- SINGLETON_MOD = load_clvm_maybe_recompile("singleton_top_layer_v1_1.clsp")
18
- SINGLETON_MOD_HASH = SINGLETON_MOD.get_tree_hash()
19
- P2_SINGLETON_MOD = load_clvm_maybe_recompile("p2_singleton.clsp")
20
- P2_SINGLETON_OR_DELAYED_MOD = load_clvm_maybe_recompile("p2_singleton_or_delayed_puzhash.clsp")
21
- SINGLETON_LAUNCHER = load_clvm_maybe_recompile("singleton_launcher.clsp")
22
- SINGLETON_LAUNCHER_HASH = SINGLETON_LAUNCHER.get_tree_hash()
29
+ SINGLETON_MOD = Program.from_bytes(SINGLETON_TOP_LAYER_V1_1)
30
+ SINGLETON_MOD_HASH = bytes32(SINGLETON_TOP_LAYER_V1_1_HASH)
31
+ P2_SINGLETON_MOD = Program.from_bytes(P2_SINGLETON)
32
+ P2_SINGLETON_OR_DELAYED_MOD = Program.from_bytes(P2_SINGLETON_OR_DELAYED_PUZHASH)
33
+ SINGLETON_LAUNCHER = Program.from_bytes(SINGLETON_LAUNCHER_BYTES)
34
+ SINGLETON_LAUNCHER_HASH = bytes32(SINGLETON_LAUNCHER_HASH_BYTES)
23
35
  ESCAPE_VALUE = -113
24
36
  MELT_CONDITION = [ConditionOpcode.CREATE_COIN, 0, ESCAPE_VALUE]
25
37
 
@@ -2,12 +2,18 @@ from __future__ import annotations
2
2
 
3
3
  from typing import Any, Optional
4
4
 
5
- from chia_rs import Coin
5
+ from chia_puzzles_py.programs import (
6
+ DELEGATED_TAIL,
7
+ EVERYTHING_WITH_SIGNATURE,
8
+ GENESIS_BY_COIN_ID,
9
+ GENESIS_BY_COIN_ID_OR_SINGLETON,
10
+ GENESIS_BY_PUZZLE_HASH,
11
+ )
12
+ from chia_rs.sized_bytes import bytes32
13
+ from chia_rs.sized_ints import uint64
6
14
 
7
15
  from chia.types.blockchain_format.program import Program
8
- from chia.types.blockchain_format.sized_bytes import bytes32
9
16
  from chia.util.byte_types import hexstr_to_bytes
10
- from chia.util.ints import uint64
11
17
  from chia.wallet.cat_wallet.cat_info import CATInfo
12
18
  from chia.wallet.cat_wallet.cat_utils import (
13
19
  CAT_MOD,
@@ -16,29 +22,20 @@ from chia.wallet.cat_wallet.cat_utils import (
16
22
  unsigned_spend_bundle_for_spendable_cats,
17
23
  )
18
24
  from chia.wallet.cat_wallet.lineage_store import CATLineageStore
19
- from chia.wallet.dao_wallet.dao_utils import create_cat_launcher_for_singleton_id
25
+ from chia.wallet.conditions import CreateCoin
20
26
  from chia.wallet.lineage_proof import LineageProof
21
- from chia.wallet.payment import Payment
22
- from chia.wallet.puzzles.load_clvm import load_clvm_maybe_recompile
23
- from chia.wallet.transaction_record import TransactionRecord
24
27
  from chia.wallet.wallet_action_scope import WalletActionScope
25
28
  from chia.wallet.wallet_spend_bundle import WalletSpendBundle
26
29
 
27
- GENESIS_BY_ID_MOD = load_clvm_maybe_recompile(
28
- "genesis_by_coin_id.clsp", package_or_requirement="chia.wallet.cat_wallet.puzzles"
29
- )
30
- GENESIS_BY_PUZHASH_MOD = load_clvm_maybe_recompile(
31
- "genesis_by_puzzle_hash.clsp", package_or_requirement="chia.wallet.cat_wallet.puzzles"
32
- )
33
- EVERYTHING_WITH_SIG_MOD = load_clvm_maybe_recompile(
34
- "everything_with_signature.clsp", package_or_requirement="chia.wallet.cat_wallet.puzzles"
35
- )
36
- DELEGATED_LIMITATIONS_MOD = load_clvm_maybe_recompile(
37
- "delegated_tail.clsp", package_or_requirement="chia.wallet.cat_wallet.puzzles"
38
- )
39
- GENESIS_BY_ID_OR_SINGLETON_MOD = load_clvm_maybe_recompile(
40
- "genesis_by_coin_id_or_singleton.clsp", package_or_requirement="chia.wallet.cat_wallet.puzzles"
41
- )
30
+ GENESIS_BY_ID_MOD = Program.from_bytes(GENESIS_BY_COIN_ID)
31
+
32
+ GENESIS_BY_PUZHASH_MOD = Program.from_bytes(GENESIS_BY_PUZZLE_HASH)
33
+
34
+ EVERYTHING_WITH_SIG_MOD = Program.from_bytes(EVERYTHING_WITH_SIGNATURE)
35
+
36
+ DELEGATED_LIMITATIONS_MOD = Program.from_bytes(DELEGATED_TAIL)
37
+
38
+ GENESIS_BY_ID_OR_SINGLETON_MOD = Program.from_bytes(GENESIS_BY_COIN_ID_OR_SINGLETON)
42
39
 
43
40
 
44
41
  class LimitationsProgram:
@@ -113,7 +110,7 @@ class GenesisById(LimitationsProgram):
113
110
  action_scope.config.tx_config, push=False
114
111
  ) as inner_action_scope:
115
112
  await wallet.standard_wallet.generate_signed_transaction(
116
- amount, minted_cat_puzzle_hash, inner_action_scope, fee, coins, origin_id=origin_id
113
+ [amount], [minted_cat_puzzle_hash], inner_action_scope, fee, coins, origin_id=origin_id
117
114
  )
118
115
 
119
116
  async with action_scope.use() as interface:
@@ -122,7 +119,7 @@ class GenesisById(LimitationsProgram):
122
119
  inner_tree_hash = cat_inner.get_tree_hash()
123
120
  inner_solution = wallet.standard_wallet.add_condition_to_solution(
124
121
  Program.to([51, 0, -113, tail, []]),
125
- wallet.standard_wallet.make_solution(primaries=[Payment(inner_tree_hash, amount, [inner_tree_hash])]),
122
+ wallet.standard_wallet.make_solution(primaries=[CreateCoin(inner_tree_hash, amount, [inner_tree_hash])]),
126
123
  )
127
124
  eve_spend = unsigned_spend_bundle_for_spendable_cats(
128
125
  CAT_MOD,
@@ -224,110 +221,6 @@ class DelegatedLimitations(LimitationsProgram):
224
221
  )
225
222
 
226
223
 
227
- class GenesisByIdOrSingleton(LimitationsProgram):
228
- """
229
- This TAIL allows for another TAIL to be used, as long as a signature of that TAIL's puzzlehash is included.
230
- """
231
-
232
- @staticmethod
233
- def match(uncurried_mod: Program, curried_args: Program) -> tuple[bool, list[Program]]: # pragma: no cover
234
- if uncurried_mod == GENESIS_BY_ID_OR_SINGLETON_MOD:
235
- genesis_id = curried_args.first()
236
- return True, [genesis_id]
237
- else:
238
- return False, []
239
-
240
- @staticmethod
241
- def construct(args: list[Program]) -> Program:
242
- return GENESIS_BY_ID_OR_SINGLETON_MOD.curry(
243
- args[0],
244
- args[1],
245
- )
246
-
247
- @staticmethod
248
- def solve(args: list[Program], solution_dict: dict) -> Program: # pragma: no cover
249
- pid = hexstr_to_bytes(solution_dict["parent_coin_info"])
250
- return Program.to([pid, solution_dict["amount"]])
251
-
252
- @classmethod
253
- async def generate_issuance_bundle(
254
- cls,
255
- wallet,
256
- tail_info: dict,
257
- amount: uint64,
258
- action_scope: WalletActionScope,
259
- fee: uint64 = uint64(0),
260
- ) -> WalletSpendBundle:
261
- if "coins" in tail_info:
262
- coins: list[Coin] = tail_info["coins"]
263
- origin_id = coins.copy().pop().name()
264
- else: # pragma: no cover
265
- coins = await wallet.standard_wallet.select_coins(amount + fee, action_scope)
266
- origin = coins.copy().pop()
267
- origin_id = origin.name()
268
-
269
- cat_inner: Program = await wallet.standard_wallet.get_puzzle(
270
- new=not action_scope.config.tx_config.reuse_puzhash
271
- )
272
- # GENESIS_ID
273
- # TREASURY_SINGLETON_STRUCT ; (SINGLETON_MOD_HASH, (LAUNCHER_ID, LAUNCHER_PUZZLE_HASH))
274
- launcher_puzhash = create_cat_launcher_for_singleton_id(tail_info["treasury_id"]).get_tree_hash()
275
- tail: Program = cls.construct(
276
- [
277
- Program.to(origin_id),
278
- Program.to(launcher_puzhash),
279
- ]
280
- )
281
-
282
- wallet.lineage_store = await CATLineageStore.create(
283
- wallet.wallet_state_manager.db_wrapper, tail.get_tree_hash().hex()
284
- )
285
- await wallet.add_lineage(origin_id, LineageProof())
286
-
287
- minted_cat_puzzle_hash: bytes32 = construct_cat_puzzle(CAT_MOD, tail.get_tree_hash(), cat_inner).get_tree_hash()
288
-
289
- async with wallet.wallet_state_manager.new_action_scope(
290
- action_scope.config.tx_config, push=False
291
- ) as inner_action_scope:
292
- await wallet.standard_wallet.generate_signed_transaction(
293
- amount,
294
- minted_cat_puzzle_hash,
295
- inner_action_scope,
296
- fee,
297
- coins=set(coins),
298
- origin_id=origin_id,
299
- )
300
-
301
- async with action_scope.use() as interface:
302
- interface.side_effects.transactions.extend(inner_action_scope.side_effects.transactions)
303
- tx_record: TransactionRecord = inner_action_scope.side_effects.transactions[0]
304
- assert tx_record.spend_bundle is not None
305
- payment = Payment(cat_inner.get_tree_hash(), amount)
306
- inner_solution = wallet.standard_wallet.add_condition_to_solution(
307
- Program.to([51, 0, -113, tail, []]),
308
- wallet.standard_wallet.make_solution(
309
- primaries=[payment],
310
- ),
311
- )
312
- eve_spend = unsigned_spend_bundle_for_spendable_cats(
313
- CAT_MOD,
314
- [
315
- SpendableCAT(
316
- next(filter(lambda a: a.amount == amount, tx_record.additions)),
317
- tail.get_tree_hash(),
318
- cat_inner,
319
- inner_solution,
320
- limitations_program_reveal=tail,
321
- )
322
- ],
323
- )
324
-
325
- if wallet.cat_info.my_tail is None:
326
- await wallet.save_info(CATInfo(tail.get_tree_hash(), tail))
327
-
328
- return eve_spend
329
-
330
-
331
224
  # This should probably be much more elegant than just a dictionary with strings as identifiers
332
225
  # Right now this is small and experimental so it can stay like this
333
226
  ALL_LIMITATIONS_PROGRAMS: dict[str, Any] = {
@@ -335,7 +228,6 @@ ALL_LIMITATIONS_PROGRAMS: dict[str, Any] = {
335
228
  "genesis_by_puzhash": GenesisByPuzhash,
336
229
  "everything_with_signature": EverythingWithSig,
337
230
  "delegated_limitations": DelegatedLimitations,
338
- "genesis_by_id_or_singleton": GenesisByIdOrSingleton,
339
231
  }
340
232
 
341
233
 
@@ -2,12 +2,13 @@ from __future__ import annotations
2
2
 
3
3
  from dataclasses import dataclass
4
4
 
5
+ from chia_rs.sized_bytes import bytes32
6
+ from chia_rs.sized_ints import uint64
7
+
5
8
  from chia.types.blockchain_format.coin import Coin as _Coin
6
9
  from chia.types.blockchain_format.program import Program
7
10
  from chia.types.blockchain_format.serialized_program import SerializedProgram
8
- from chia.types.blockchain_format.sized_bytes import bytes32
9
11
  from chia.types.coin_spend import CoinSpend
10
- from chia.util.ints import uint64
11
12
  from chia.util.streamable import Streamable
12
13
  from chia.wallet.util.clvm_streamable import clvm_streamable
13
14
 
chia/wallet/singleton.py CHANGED
@@ -2,12 +2,18 @@ from __future__ import annotations
2
2
 
3
3
  from typing import Optional, Union
4
4
 
5
+ from chia_puzzles_py.programs import (
6
+ SINGLETON_LAUNCHER,
7
+ SINGLETON_LAUNCHER_HASH,
8
+ SINGLETON_TOP_LAYER_V1_1,
9
+ SINGLETON_TOP_LAYER_V1_1_HASH,
10
+ )
11
+ from chia_rs.sized_bytes import bytes32
12
+
5
13
  from chia.types.blockchain_format.coin import Coin
6
14
  from chia.types.blockchain_format.program import Program
7
15
  from chia.types.blockchain_format.serialized_program import SerializedProgram
8
- from chia.types.blockchain_format.sized_bytes import bytes32
9
16
  from chia.types.coin_spend import CoinSpend, compute_additions
10
- from chia.wallet.puzzles.load_clvm import load_clvm_maybe_recompile
11
17
  from chia.wallet.util.curry_and_treehash import (
12
18
  calculate_hash_of_quoted_mod_hash,
13
19
  curry_and_treehash,
@@ -15,12 +21,12 @@ from chia.wallet.util.curry_and_treehash import (
15
21
  shatree_pair,
16
22
  )
17
23
 
18
- SINGLETON_TOP_LAYER_MOD = load_clvm_maybe_recompile("singleton_top_layer_v1_1.clsp")
19
- SINGLETON_TOP_LAYER_MOD_HASH = SINGLETON_TOP_LAYER_MOD.get_tree_hash()
24
+ SINGLETON_TOP_LAYER_MOD = Program.from_bytes(SINGLETON_TOP_LAYER_V1_1)
25
+ SINGLETON_TOP_LAYER_MOD_HASH = bytes32(SINGLETON_TOP_LAYER_V1_1_HASH)
20
26
  SINGLETON_TOP_LAYER_MOD_HASH_TREE_HASH = shatree_atom(SINGLETON_TOP_LAYER_MOD_HASH)
21
27
  SINGLETON_TOP_LAYER_MOD_HASH_QUOTED = calculate_hash_of_quoted_mod_hash(SINGLETON_TOP_LAYER_MOD_HASH)
22
- SINGLETON_LAUNCHER_PUZZLE = load_clvm_maybe_recompile("singleton_launcher.clsp")
23
- SINGLETON_LAUNCHER_PUZZLE_HASH = SINGLETON_LAUNCHER_PUZZLE.get_tree_hash()
28
+ SINGLETON_LAUNCHER_PUZZLE = Program.from_bytes(SINGLETON_LAUNCHER)
29
+ SINGLETON_LAUNCHER_PUZZLE_HASH = bytes32(SINGLETON_LAUNCHER_HASH)
24
30
  SINGLETON_LAUNCHER_PUZZLE_HASH_TREE_HASH = shatree_atom(SINGLETON_LAUNCHER_PUZZLE_HASH)
25
31
 
26
32
 
@@ -3,10 +3,11 @@ from __future__ import annotations
3
3
  from dataclasses import dataclass
4
4
  from typing import Any, Optional
5
5
 
6
+ from chia_rs.sized_bytes import bytes32
7
+ from chia_rs.sized_ints import uint32
8
+
6
9
  from chia.types.blockchain_format.coin import Coin
7
- from chia.types.blockchain_format.sized_bytes import bytes32
8
10
  from chia.types.coin_spend import CoinSpend
9
- from chia.util.ints import uint32
10
11
  from chia.wallet.lineage_proof import LineageProof
11
12
 
12
13
 
@@ -6,6 +6,8 @@ import time
6
6
  from collections import deque
7
7
  from typing import TYPE_CHECKING, Any, Optional, Union
8
8
 
9
+ from chia_rs.sized_bytes import bytes32
10
+ from chia_rs.sized_ints import uint32, uint64
9
11
  from typing_extensions import Literal
10
12
 
11
13
  from chia.data_layer.data_layer_wallet import DataLayerWallet
@@ -13,16 +15,15 @@ from chia.protocols.wallet_protocol import CoinState
13
15
  from chia.server.ws_connection import WSChiaConnection
14
16
  from chia.types.blockchain_format.coin import Coin, coin_as_list
15
17
  from chia.types.blockchain_format.program import Program
16
- from chia.types.blockchain_format.sized_bytes import bytes32
17
18
  from chia.types.spend_bundle import estimate_fees
18
19
  from chia.util.db_wrapper import DBWrapper2
19
20
  from chia.util.hash import std_hash
20
- from chia.util.ints import uint32, uint64
21
21
  from chia.wallet.cat_wallet.cat_wallet import CATWallet
22
22
  from chia.wallet.conditions import (
23
23
  AssertCoinAnnouncement,
24
24
  Condition,
25
25
  ConditionValidTimes,
26
+ CreateCoin,
26
27
  CreateCoinAnnouncement,
27
28
  parse_conditions_non_consensus,
28
29
  parse_timelock_info,
@@ -30,9 +31,7 @@ from chia.wallet.conditions import (
30
31
  from chia.wallet.db_wallet.db_wallet_puzzles import ACS_MU_PH
31
32
  from chia.wallet.nft_wallet.nft_wallet import NFTWallet
32
33
  from chia.wallet.outer_puzzles import AssetType
33
- from chia.wallet.payment import Payment
34
34
  from chia.wallet.puzzle_drivers import PuzzleInfo, Solver
35
- from chia.wallet.puzzles.load_clvm import load_clvm_maybe_recompile
36
35
  from chia.wallet.trade_record import TradeRecord
37
36
  from chia.wallet.trading.offer import NotarizedPayment, Offer
38
37
  from chia.wallet.trading.trade_status import TradeStatus
@@ -54,8 +53,6 @@ if TYPE_CHECKING:
54
53
  from chia.wallet.wallet_state_manager import WalletStateManager
55
54
  from chia.wallet.wallet_spend_bundle import WalletSpendBundle
56
55
 
57
- OFFER_MOD = load_clvm_maybe_recompile("settlement_payments.clsp")
58
-
59
56
 
60
57
  class TradeManager:
61
58
  """
@@ -325,41 +322,30 @@ class TradeManager:
325
322
  uint64(fee_to_pay - coin.amount),
326
323
  action_scope,
327
324
  )
328
- selected_coins.add(coin)
329
325
  else:
330
- selected_coins = {coin}
331
- async with self.wallet_state_manager.new_action_scope(
332
- action_scope.config.tx_config.override(
333
- excluded_coin_ids=[],
334
- ),
335
- push=False,
336
- ) as inner_action_scope:
337
- await wallet.generate_signed_transaction(
338
- uint64(sum(c.amount for c in selected_coins) - fee_to_pay),
339
- new_ph,
340
- inner_action_scope,
341
- origin_id=coin.name(),
342
- fee=fee_to_pay,
343
- coins=selected_coins,
344
- extra_conditions=(*extra_conditions, *announcement_conditions),
345
- )
326
+ selected_coins = set()
327
+ selected_coins.add(coin)
328
+ amount_to_pay = uint64(sum(c.amount for c in selected_coins) - fee_to_pay)
346
329
  else:
347
- # ATTENTION: new_wallets
348
- assert isinstance(wallet, (CATWallet, DataLayerWallet, NFTWallet))
349
- async with self.wallet_state_manager.new_action_scope(
350
- action_scope.config.tx_config.override(
351
- excluded_coin_ids=[],
352
- ),
353
- push=False,
354
- ) as inner_action_scope:
355
- await wallet.generate_signed_transaction(
356
- [coin.amount],
357
- [new_ph],
358
- inner_action_scope,
359
- fee=fee_to_pay,
360
- coins={coin},
361
- extra_conditions=(*extra_conditions, *announcement_conditions),
362
- )
330
+ selected_coins = {coin}
331
+ amount_to_pay = coin.amount
332
+
333
+ # ATTENTION: new_wallets
334
+ assert isinstance(wallet, (Wallet, CATWallet, DataLayerWallet, NFTWallet))
335
+ async with self.wallet_state_manager.new_action_scope(
336
+ action_scope.config.tx_config.override(
337
+ excluded_coin_ids=[],
338
+ ),
339
+ push=False,
340
+ ) as inner_action_scope:
341
+ await wallet.generate_signed_transaction(
342
+ [amount_to_pay],
343
+ [new_ph],
344
+ inner_action_scope,
345
+ fee=fee_to_pay,
346
+ coins=selected_coins,
347
+ extra_conditions=(*extra_conditions, *announcement_conditions),
348
+ )
363
349
 
364
350
  cancellation_additions.extend(
365
351
  [
@@ -503,7 +489,7 @@ class TradeManager:
503
489
  solver = Solver({})
504
490
  try:
505
491
  coins_to_offer: dict[Union[int, bytes32], set[Coin]] = {}
506
- requested_payments: dict[Optional[bytes32], list[Payment]] = {}
492
+ requested_payments: dict[Optional[bytes32], list[CreateCoin]] = {}
507
493
  offer_dict_no_ints: dict[Optional[bytes32], int] = {}
508
494
  for id, amount in offer_dict.items():
509
495
  asset_id: Optional[bytes32] = None
@@ -540,7 +526,7 @@ class TradeManager:
540
526
  asset_id = id
541
527
  wallet = await self.wallet_state_manager.get_wallet_for_asset_id(asset_id.hex())
542
528
  memos = [p2_ph]
543
- requested_payments[asset_id] = [Payment(p2_ph, uint64(amount), memos)]
529
+ requested_payments[asset_id] = [CreateCoin(p2_ph, uint64(amount), memos)]
544
530
  elif amount < 0:
545
531
  # this is what we are sending in the trade
546
532
  if isinstance(id, int):
@@ -637,17 +623,7 @@ class TradeManager:
637
623
  ) as inner_action_scope:
638
624
  # This should probably not switch on whether or not we're spending XCH but it has to for now
639
625
  assert wallet is not None
640
- if wallet.type() == WalletType.STANDARD_WALLET:
641
- assert isinstance(wallet, Wallet)
642
- await wallet.generate_signed_transaction(
643
- uint64(abs(offer_dict[id])),
644
- Offer.ph(),
645
- inner_action_scope,
646
- fee=fee_left_to_pay,
647
- coins=selected_coins,
648
- extra_conditions=(*extra_conditions, *announcements_to_assert),
649
- )
650
- elif wallet.type() == WalletType.NFT:
626
+ if wallet.type() == WalletType.NFT:
651
627
  assert isinstance(wallet, NFTWallet)
652
628
  # This is to generate the tx for specific nft assets, i.e. not using
653
629
  # wallet_id as the selector which would select any coins from nft_wallet
@@ -663,7 +639,7 @@ class TradeManager:
663
639
  )
664
640
  else:
665
641
  # ATTENTION: new_wallets
666
- assert isinstance(wallet, (CATWallet, DataLayerWallet))
642
+ assert isinstance(wallet, (Wallet, CATWallet, DataLayerWallet))
667
643
  await wallet.generate_signed_transaction(
668
644
  [uint64(abs(offer_dict[id]))],
669
645
  [Offer.ph()],
@@ -1054,10 +1030,10 @@ class TradeManager:
1054
1030
 
1055
1031
  async def check_for_requested_payment_modifications(
1056
1032
  self,
1057
- requested_payments: dict[Optional[bytes32], list[Payment]],
1033
+ requested_payments: dict[Optional[bytes32], list[CreateCoin]],
1058
1034
  driver_dict: dict[bytes32, PuzzleInfo],
1059
1035
  taking: bool,
1060
- ) -> dict[Optional[bytes32], list[Payment]]:
1036
+ ) -> dict[Optional[bytes32], list[CreateCoin]]:
1061
1037
  # This function exclusively deals with CR-CATs for now
1062
1038
  if not taking:
1063
1039
  for asset_id, puzzle_info in driver_dict.items():
@@ -3,9 +3,10 @@ from __future__ import annotations
3
3
  from dataclasses import dataclass
4
4
  from typing import Any, Optional, TypeVar
5
5
 
6
+ from chia_rs.sized_bytes import bytes32
7
+ from chia_rs.sized_ints import uint8, uint32, uint64
8
+
6
9
  from chia.types.blockchain_format.coin import Coin
7
- from chia.types.blockchain_format.sized_bytes import bytes32
8
- from chia.util.ints import uint8, uint32, uint64
9
10
  from chia.util.streamable import Streamable, streamable
10
11
  from chia.wallet.conditions import ConditionValidTimes
11
12
  from chia.wallet.trading.offer import Offer